[olsr-dev] fork() in main kills plugin's threads
Jens Nachtigall
(spam-protected)
Sun Dec 19 01:25:42 CET 2004
Hi,
olsrd itself does not use threads, but the dyn_gw does. I noticed that
the dyn_gw works okay if olsrd is not forking (i.e. -d option is set
for debugging). If olsrd forks (ie no -d option) then the pthread
created by dyn_gw ,before the fork happens, seems to be killed.
I searched the web and this seems to be caused by libpthread and libc6
both offering a fork() call, but libpthread's one is reentrant but
libc6 not.
http://lists.wxwidgets.org/archive/wx-users/msg10470.html suggest to
compile stuff with " -D_REENTRANT ". However, this does not help.
I know, I could simply always create a new pthread whenever the plugin's
function is scheduled, so creating the pthread after fork() (this would
be suboptimal, but would not also hurt much). However, that fork()
kills the pthreads seems odd to me, any ideas on how to change this?
BTW: register_olsr_param is called before olsr_plugin_init(). Since one
might want to set some default values in olsr_plugin_init, it should be
vice versa imho.
Jens
More information about the Olsr-dev
mailing list