Hello!

As shown in Marcs backtrace, the reason the eggdrop freezes is because
the Tcl_DoOneEvent function called from main goes sleeping even though
it's passed the flag TCL_DONT_WAIT (which should make it a non-blocking
function).

I've looked at the differences between running in forground mode vs.
background mode as this as reported works around the problem. The
difference that makes the function not block is to avoid calling fork!
Replace "int xx = fork()" in src/bg.c with int xx = 0 and you'll get a
working (non-forking) eggdrop.
(The other difference here would be that bg_do_detach() isn't called in
the parent, but this doesn't make any difference. Try replacing it with
exit(0) and you'll still get the freeze.)

Next step would be to figure out why forking matters.... (Seems there's
a home-grown tcl initialization method, init_tcl in src/tcl.c, which
I'll treat as a likely suspect going forward...)


-- 
Regards,
Andreas Henriksson



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to