Queries regarding signal usage in Ruby 1.9 implementation

C

Chirag Mistry

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.

1. 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?

2. 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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,012
Latest member
RoxanneDzm

Latest Threads

Top