[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Spiffy subprocess cleanup
From: |
Bryan Vicknair |
Subject: |
Re: [Chicken-users] Spiffy subprocess cleanup |
Date: |
Thu, 23 May 2013 08:57:09 -0700 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, May 23, 2013 at 09:14:25AM +0200, Peter Bex wrote:
> On Wed, May 22, 2013 at 10:29:03PM -0700, Evan Hanson wrote:
> > After looking at a bit more, here's what I believe is *actually*
> > happening:
> >
> > The invalid call to process* is signaling an exception in the child,
> > which is handled internally by spiffy (spiffy.scm:470), causing that
> > process to loop back to the start of the accept-next-connection
> > procedure inside spiffy's accept-loop. At this point you have two
> > processes listening on 8080, with the parent waiting for the child (who
> > has no plans to exit). The same thing happens with each request, so the
> > subprocesses pile up.
>
> Thanks for the excellent debugging work. I think process-fork really
> needs to catch exceptions and exit instead of simply exiting if the
> thunk returns normally. Will post a patch later, unless someone beats
> me to it.
>
> Cheers,
> Peter
Thanks a lot Evan and Peter. That was very helpful.
I started looking at the process-fork source to write a patch, but I'm not
familiar enough with chicken-core yet to tackle it. For now I changed my code
to use the process* variant that sends a command to the shell and that is
working.
One step closer to using chicken/spiffy for new web development at my company.
Wrapping up the first version of an egg to get at multipart/form-data in
spiffy so I can accept file uploads.
Bryan