Subject: Re: What is happening with libpthread???
To: Christian Kuhtz <kuhtz@ix.netcom.com>
From: John Birrell <jb@cimlogic.com.au>
List: current-users
Date: 01/20/1997 20:49:28
Christian Kuhtz wrote (very long lines!):
> Can anyone comment on what the status of this work in progress is?
> And if there's someone who is actively working on it, could you possible
> comment on this? ;-) Is there an ETA for pthreads?
I'm working on it, but I wouldn't like to give an ETA because I don't have
a design that is acceptable to NetBSD.
>
> Is it really such a great idea to combine libc with libpthreads?
The NetBSD approach is to make the normal libc re-entrant and to avoid
duplicating compiled code in libc and libpthread. This isn't easy to
implement.
> Especially with all the architecture dependencies in any kind of
> architecture.
There are only a few architecture specific bits of code:
1. Setting up a jmpbuf during thread creation.
2. Saving and restoring state.
On NetBSD/Alpha (1) is 4 lines of code and (2) is just calls to setjmp
and longjmp.
On NetBSD/i386 (1) is 2 lines of code and (2) is calls to setjmp and longjmp
plus 2 lines of code with each call.
But none of this needs to go in libc. It is only in libpthread. There
are no libc/libpthread architecture specific issues that affect libc.
> It seems to me, while it is a neat idea to take the approach above,
> it is generally a much faster implemented approach to build an external
> libpthread in addition to libc.
The 'right' design is what NetBSD is about.
>
> For other reasons than pthreads being an integral part of threadsafe
> calls to libc, I have never seen anyone take this approach, unless the
> OS itself is multithreaded, which NetBSD isn't.
>
> Care to comment on that?
Nope. 8-)
>
> Best regards,
> Chris
>
> PS: Yet another reason to run a NetBSD server or NetBSD API compliant
> server on a Mach mk and built Pthreads on top of Mach C-Threads. 8-]
Why run NetBSD at all then?
--
John Birrell CIMlogic Pty Ltd
jb@cimlogic.com.au; jb@netbsd.org 119 Cecil Street
Ph +61 3 9690 6900 South Melbourne Vic 3205
Fax +61 3 9690 6650 Australia
Mob +61 18 353 137