tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: getcontext()/setcontext()/makecontext() reliability?



On Thu, May 03, 2012 at 07:35:41PM -0400, Matthew Mondor wrote:
> On Thu, 3 May 2012 12:59:45 -0500
> David Young <dyoung%pobox.com@localhost> wrote:
> 
> > Are getcontext()/setcontext()/makecontext() known to work reliably on
> > NetBSD?  It looks to me like they are used in NetBSD/usermode and in
> > puffs, and there are tests exercising them, so I hoep that the answer is
> > "yes!"
> 
> I can't confirm that it's still the case, but there's a CAVEATS section:
> 
> CAVEATS
>      Due to limitations in the current pthread implementation, makecontext
>      should not be used in programs which link against the pthread(3) library
>      (whether threads are used or not).

Right.  It's also deprecated by POSIX in favor of pthread(3).

I'm looking into getcontext()/setcontext() because I think that its
overhead may be way less than POSIX threads for an I/O server with
potentially hundreds or thousands of active sessions.  Not so?

In NetBSD, switching POSIX threads require, I thought, a user-kernel
round trip.  I figure that's the costly part.

Dave

-- 
David Young
dyoung%pobox.com@localhost    Urbana, IL    (217) 721-9981


Home | Main Index | Thread Index | Old Index