[tpm] fork and blessed hash references

Rob Janes janes.rob at gmail.com
Thu Jan 14 09:21:06 PST 2010

good advice.  this caveat applies to all signals, SIGALRM included.

On Thu, Jan 14, 2010 at 12:13 PM, Fulko Hew <fulko.hew at gmail.com> wrote:
> On Thu, Jan 14, 2010 at 11:49 AM, Rob Janes <janes.rob at gmail.com> wrote:
> ... snip ...
>> there is an alternative process.  set a signal handler for one of the
>> user signals SIGUSR1 say.  Send a signal to that process and handler
>> to reset the timer.  Your SIGALRM handler then is in a process which
>> also has a SIGUSR1 handler.  The SIGUSR1 handler resets the timer.
>> This way you don't need shared memory or semaphores.  Much easier,
>> much less complicated.  All that needs to be known globally is the pid
>> (process id) and maybe the tid (thread id) of the SIGUSR1 handler.
> The caveat  for using signals, is that they interrupt whatever might be
> going on,
> which is good, but if you were in the middle of a read or write (like to a
> socket
> or a file), the call to read, write, etc. can be interrupted.  So if you are
> not looking
> at their return values (which sometimes tells you how much was 'actually'
> read or written), you might find out that the 'whole' buffer wasn't
> processed
> and you have to handle that (outstanding) fragment yourself.  But thats just
> good programming anyway.  But its not normally a condition you need to
> consider... if there is no way your application _could_ get interrupted.

More information about the toronto-pm mailing list