We have gone through the code of Ruby 1.9 implementation. I have some
queries at some places regarding the signal usages in the code.
In file trunk/signal.c, at line number 788:
SIGVTALRM seems a reserved signal in the ruby interpreter as per
implementation of trap function of Signal module. But, we did not find
any reference related with usage of this signal. In earlier versions of
ruby, SIGVTALRM was used to implement cooperative multitasking (user
space multithreading) and this signal was reserved for proper
functioning of Thread module. So in Ruby 1.9, SIGVTALRM is not used any
more. Empty signal handler is installed for SIGVTALRM in
Init_native_thread() function. As SIGVTALRM is not used in this version
(Ruby 1.9), will it be removed from the Ruby 1.9 implementation?
In file trunk/eval.c, at line number 144:
In ruby_finalize_1 function, signal handler SIG_DFL is installed for
SIGINT signal. It gets called automatically when ruby interpreter is
unloaded (normally or abnormally). As per our understanding, it may
create problem when ruby interpreter is embedded in a process for
a limited period of time. Because ruby_finalize_1 sets signal handler
for SIGINT to SIG_DFL without checking previously installed signal
handler. If my understanding is correct then this defect is need to be
fixed with Ruby 1.9 release.