[OpenAFS-devel] AFS on Solaris makes deprecative usage of newproc()
Nickolai Zeldovich
kolya@MIT.EDU
Wed, 24 Apr 2002 13:19:13 -0400
> currently AFS makes deprecative usage of the
> kernel internal function newproc() to create a process.
The reason it used newproc() was because it needed a separate
process to which it could send signals with kill(). Thus,
using thread_create() wouldn't be possible, and lwp_create()
seemed to have a rather complex interface which I couldn't
figure out (but one can send signals to LWP's, I think).
> You can not call exit() or something similar in a thread
> created by newproc(). That would leave it still laying around
> as it would not cleaned up, a process with freed threads.
Hm, that could explain the occasional crashes I've seen after
unloading AFS (which now calls exit() in the newproc'ed thread).
Before I added the exit() call, it would crash every time you
looked at /proc after unloading AFS.
> Thus this needs to be changed to either fork() or thread_create().
Ah, fork() would probably do the trick here. I'll see if I can
change it to using that instead of newproc().
-- kolya