From owner-freebsd-arch Sun Aug 26 13:39:27 2001 Delivered-To: freebsd-arch@freebsd.org Received: from InterJet.elischer.org (c421509-a.pinol1.sfba.home.com [24.7.86.9]) by hub.freebsd.org (Postfix) with ESMTP id 3509237B403 for ; Sun, 26 Aug 2001 13:39:24 -0700 (PDT) (envelope-from julian@elischer.org) Received: from elischer.org (InterJet.elischer.org [192.168.1.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id NAA69706; Sun, 26 Aug 2001 13:58:03 -0700 (PDT) Message-ID: <3B895DF7.709DB10C@elischer.org> Date: Sun, 26 Aug 2001 13:37:11 -0700 From: Julian Elischer X-Mailer: Mozilla 4.7 [en] (X11; U; FreeBSD 5.0-CURRENT i386) X-Accept-Language: en, hu MIME-Version: 1.0 To: Archie Cobbs Cc: arch@freebsd.org Subject: Re: changes to BSD APIs for THREADS support References: <200108262010.f7QKA6f28508@arch20m.dellroad.org> Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 7bit Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Archie Cobbs wrote: > > Julian Elischer writes: > > 5/ It is possible that we may need a call by which the user thread > > scheduler can 'cancel' the syscall that a particular kernel thread > > is currently operating on. (particularly if it is waiting). > > I think this is going to be required. The UTS needs to have the > ability to cancel a thread at any time. If the thread is in userland > then it can just do it; otherwise it needs a way to wake up the > thread in the kernel. The thread's syscall should then return > immediately with EINTR or somesuch; alternately, the thread can > just never return. Mabye both options would be good to have. the mechanics are the same as for the current code that aborts a syscall when a signal is sent to the process, except that the method of finding the sleeping party to unblock is slightly different. The syscall returns just like the current one would until it reaches the kernel boundary. (it needs to unlock and free anything it may have locked or allocated on the way in). At the boundary we can just let it report a failure. The UTS can then cancel it. > > -Archie > > __________________________________________________________________________ > Archie Cobbs * Packet Design * http://www.packetdesign.com -- +------------------------------------+ ______ _ __ | __--_|\ Julian Elischer | \ U \/ / hard at work in | / \ julian@elischer.org +------>x USA \ a very strange | ( OZ ) \___ ___ | country ! +- X_.---._/ presently in San Francisco \_/ \\ v To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message