mhonarc-dev

Re: Mhonarc Catching Signals

2005-08-09 20:15:47
On August 9, 2005 at 22:23, East Coast Coder wrote:

I've been running mhonarc through a loop driver, to save the time of
the fork/exec/parse/compile:


mhonarc::initialize
while (...)
    mhonarc::process_archive

I tried to control this via Signals (ie, so I can tell the driver to
stop itself, in case I changed a callback or config file, etc.), but
it just hung (and ate up all available RAM).   A peek at the source
code showed me that mhonarc catches all of these signals.

kill -9 :)

Is there anyway around this, so that I can use signals as above?

Also, 1) why does mhonarc catch all of these signals, and 2) why do
you think they cause things to hang and eat RAM?

Not sure about the latter, could be perl thing.  MHonArc ignores
signals once it reaches the stage when it is writing files.  This
is to prevent possible archive corruption, but later versions of
MHonArc probably make corruption less likely when signal handling
code was first included.

Looking at the code, it appears that mhonarc may fail to reset
signals after it closes an archive.  Therefore, in your loop, after
the first archive is processed, it looks like signal handlers are
not reset to their original values, which causes termination-based
signals to be ignored.

--ewh

---------------------------------------------------------------------
To sign-off this list, send email to majordomo(_at_)mhonarc(_dot_)org with the
message text UNSUBSCRIBE MHONARC-DEV

<Prev in Thread] Current Thread [Next in Thread>