[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Code questions...
> On Sat, 4 Feb 1995, Lai Yiu Fai wrote:
> > > - I discovered that my scheduler zombie problem is related to the fact
> > > that a process is forked to handle mailq requests, but there isn't a
> > > designated wait call for it, it seems like it gets reaped purely by chance
> > > by waitandclose() (transport.c) whenever readfrom() is called. Also,
> > > ipcpause() (transport.c) doesn't appear to ever be called... why?
> >
> > I have the same problem since 2.99.9, I simply add a designated wait() call
> > in parent process after forking the mailq handler. It seems that the problem
> > is solved.
>
> I think it would be dangerous to just drop a wait() call after calling
> dumpq(). What would happen if a transport agent terminated before
> dumpq()? Wouldn't you lose that agent's output (readfrom() didn't get
> called), and wouldn't the scheduler's internal state be inconsistent?
Yes, and therefore 2.99.11 DOES process SIGCHLD/SIGCLD when
such arrives. So far the code has stead-fastly IGNORED the
child-death indications, and only wait()ed childs when it
has happened to come up to that one routine..
Now verified on Solaris and OSF1/1v3.0, next SunOS 4.x..
> Tom
/Matti Aarnio