If you run this up under a recent snapshot and fire some signals at
the process with
kill -USR1 <pid>
you will get no “USR1” output until AFTER the 60seconds have elapsed and
Process::wait() returns.
The old behaviour was to handle signals immediately, with presumably
SA_RESTART (or whatever it is called) set such that the wait system call
just carries on unaffected after the signal handler has been run.
So, is the change intentional? If so, whats the rationale?
In message “Re: Signal handling behaviour change after ruby upgrade”
on Sat, 21 Oct 2006 21:17:46 +0900, [email protected] writes:
|I use an init system written in ruby for my Gnu/linux distro, and it
|makes heavy use of signal handling.
|
|After upgrading (stable snapshots)
|from
| ruby 1.8.3 (2005-10-26)
|to
| ruby 1.8.5 (2006-10-18)
It was caused by a partial backport from the HEAD. The problem was
reported more than year ago in [ruby-talk:147220] by Guillaume
Marcais, but somehow I missed it. I am sorry. It will be fixed in
the snapshot soon.
On Sun, Oct 22, 2006 at 04:54:21PM +0900, Yukihiro M. wrote:
It was caused by a partial backport from the HEAD. The problem was
reported more than year ago in [ruby-talk:147220] by Guillaume
Marcais, but somehow I missed it. I am sorry. It will be fixed in
the snapshot soon.
matz.
Well ok, but don’t let it happen again
(I don’t think you need make apologies; especially here!)
On Sun, Oct 22, 2006 at 04:54:21PM +0900, Yukihiro M. wrote:
It was caused by a partial backport from the HEAD. The problem was
reported more than year ago in [ruby-talk:147220] by Guillaume
Marcais, but somehow I missed it. I am sorry. It will be fixed in
the snapshot soon.
Fixed - thanks!
Andrew Walrond
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.