NetBSD Now Has Native pthreads!
jschauma writes, quoting the NetBSD changelog, was one of several people to point out that "Jason Thorpe has merged the nathanw_sa branch with -current. NetBSD
now has a high performance, modern kernel thread implementation using
Scheduler
Activations in the main source tree. This work was performed by
Nathan Williams with contributions by several other developers."
NetBSD has had SMP support for a few platforms in the -CURRENT branch for a while now (sparc, vax and alpha for sure).
Even with SMP support, I don't think you get a really high degree of concurrency unless you have a threading implementation that involves the kernel.
FreeBSD 4.x on a dual processor machine, for example, will take each process currently running, and assign it to a free CPU (either 0 or 1). This works great if you have more than one process running on your machine with a good division of labour (i.e. Apache + MySql).
However, there are times when you want your box to be dedicated to a single purpose like being a datbase server only. That database engine might be a single process application like Oracle, and was written to break it's own internal tasks off into threads.
A kernel thread implementation means you don't waste the second CPU of your SMP capable OS in this situation.
Way to go NetBSD team, for implementing this. I hope I get to see this in action in 1.7
Success is as dangerous as failure, hope as hollow as fear.