On 4/22/05, Julian Elischer <jul...@elischer.org> wrote:
David Leimbach wrote:
Perhaps David Xu could clue me in a bit more :)
I just got around to reading the status report for FreeBSD and the 1:1
threading caught my eye.
I'm not terribly familiar with FreeBSD's KSE based threading but
rather than adding a new system call [which may be ok... though I've
worked on systems where a minimal set of system calls is the desired
approach.. usually microkernels] would it be possible to add KSEs to a
task using rfork()?
KSE and 1:1 threading are different things.
One creatres kernel threads on demand and the other keeps the kernel
threads all the time the user thread exists.
rfork is not the same.. it creates a new process context. that is what
it is also what we did before when running the the linuxthreads package.
According to the man page, and plan 9 where rfork originated you can
use it to modify an extant process. In fact you have to set the
RFPROC flag to make a new process or all the changes apply to the
Either that or the man page is wrong.
KSE and 1:1 use a lot of the same kernel changes and entities.
Which one survives will be judged in time.
Maybe I've just been playing around with Plan 9 too much lately :)
Anyway, I like that there will be a 1:1 threading library and if I had
more free time and wasn't working on other projects I'd be more than
willing to help test and work on/with this.
there has been a 1:1 and an M:N library since 5.2
Yeah but I took a bit of a FreeBSD hiatus around 5.0/5.1 and am just
now poking around again so it's all new to me :).