[DGD] Call_out question

Felix A. Croes felix at dworkin.nl
Fri Mar 21 14:40:11 CET 2003


Noah Lee Gibbs <angelbob at monkeyspeak.com> wrote:

>   In a function called by initd, I'm scheduling a call_out.  The 
> call_out() call returns 1, so it's valid.  I supplied 0 for the time so it 
> should occur immediately after the initial thread is done.
>
>   I put a logging statement at the beginning of the function that would be 
> called, so I've verified that it's never called.  That's not the odd 
> thing, though.  The odd thing is that I can't telnet to the server if I 
> try to schedule that call_out -- it appears hung.  I can comment out just 
> the line with the call_out and I get access just fine.  I can leave the 
> line in and I don't get a prompt when I telnet in.  The port is being 
> opened, telnet connects.  I just don't get any output in response.
>
>   As I say, I can comment out the line entirely so I don't need the 
> call_out to succeed in order to start up.  And I've put the logging 
> statement in, so I know it's not calling the function anyway.  I'm also 
> not calling suspend_system in the usual places -- only call_out.

This can "normally" happen if your system somehow gets into an
infinite loop with no tick limit.

Can you reproduce the problem with a bare kernel library, plus a
/usr/System/initd.c like this:

    # include <kernel/kernel.h>
    void create() { DRIVER->message("started\n"); call_out("foo", 0); }
    void foo() { DRIVER->message("called\n"); }

Regards,
Dworkin
_________________________________________________________________
List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list