"Theodore Ts'o" <tytso(a)mit.edu> wrote:
It's certainly clear that some kind of primitive
is needed to create
new threads. An open question is whether if there exists some kind of
"new thread" primitve plus either spawn(2) or some kind of "create a
child process and then then frob like crazy using 'echo XXX >
/proc/<pid>/<magic files>'" whether there still is a need for a
fork(2) system call.
I haven't caught up yet in this thread. Apologies if this has been
discussed already.
The Plan 9 folks blazed this trail over 30 years ago with rfork, where
you specify what bits you wish to duplicate. I don't remember details
anymore, but I think it was pretty elegant. IIRC Around that time Rob Pike
said "Threads are the lack of an idea", meaning, if you think you need
threads, you haven't thought about the problem hard enough. (Apologies
to Rob if I am misremembering and/or misrepresenting.)
Arnold