Subject: Re: NetBSD multi-threaded? <[email-masked]>

From: "Chris G. Demetriou" <[email-masked]>

> Deep within the recesses of my foggy memory, I remember something
> about the u. structures in kernel memory being changed to a different
> format, supposedly to facilitate either multi-threaded processes, or a
> multi-threaded kernel.  I believe this may have been just after the
> intro of 0.9, but I'm not positive.

Actually, this was done by CSRG, before Net/2, mostly for the reasons
you describe.

> What was the focus of those changes, and what was the end result?

See above.

> Is
> NetBSD a "multi-threaded kernel" (in whatever context), and will there
> ever be a process thread library and/or any thread data
> synchronization support?

NetBSD is not a multi-threaded kernel.  I'd like to see that happen
(as well as full SMP support), but "not today."

There _is_ a POSIX threads library (libpthread), written by Chris
Provenzano, that is distributed as a standard part of the system.
That deals with most of what you require, but i believe it (quite
correctly) leaves data synchronization up to the application.
It's entirely a "user-land" threads package, i.e. it requires no
special kernel support.  Note also that it is following a moving
target -- unless i'm mistaken, the POSIX threads interface has not
been completely nailed down yet.

> My mind was just wandering down this avenue this morning, and I was
> wondering just how robust and featureful any threading support might
> be in NetBSD.  I remember a short-lived libpthread at one point in
> time, but it hasn't been around for awhile.

I dunno how robust or featureful it is, but it's still in
/usr/src/lib...  I'm not even sure offhand if it compiles properly.
However, it can't be _too_ far from working, as it definitely worked
at one point.

chris