Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Oct 2000 08:24:19 -0400 (EDT)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Terry Lambert <tlambert@primenet.com>
Cc:        Jason Evans <jasone@canonware.com>, Seth Leigh <seth@pengar.com>, smp@FreeBSD.ORG
Subject:   Re: SA project (was Re: SMP project status)
Message-ID:  <Pine.SUN.3.91.1001024080432.1904A-100000@pcnet1.pcnet.com>
In-Reply-To: <200010240715.AAA10142@usr01.primenet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 24 Oct 2000, Terry Lambert wrote:
> Perhaps the biggest pain is the default signal behaviour, which
> no longer results in system call restart.  This means that the
> signal code must self-mask anything that it wants to pretend is
> a system call, for every wrapping library routine.  POSIX really
> screwed us over on that account, kind of like what they did to
> locks when you close one of several file handles to the same file.

Hmm.  If the method used by the kernel to notify the threads library
that a thread has blocked in the kernel can also tell the threads
library that it is/isn't blocked in a restartable system call,
then the threads library can DTRT WRT interrupting the thread.
Basically, all it would need is the system call number.  It could
probably get it from the context of the interrupted thread (which
is passed out to the threads library under SA).

There are only a few system calls that require restarting (assuming
SA_RESTART is set), so I'm not quite sure what you mean by self-masking
library routines.  Perhaps library routines that use read(), for
instance, in their implementation?

-- 
Dan Eischen


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SUN.3.91.1001024080432.1904A-100000>