diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-11-21 15:42:12 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-11-21 15:42:12 +0000 |
| commit | 9b6171018a22c29feeab7635376da16f6051ecdb (patch) | |
| tree | 8a2e0db3367f57d457917a2637feec1dd657b6ad /signal.c | |
| parent | 8cfe0591bd139d14ddd9408dfc15e5628c4b9247 (diff) | |
| download | ruby-9b6171018a22c29feeab7635376da16f6051ecdb.tar.gz ruby-9b6171018a22c29feeab7635376da16f6051ecdb.tar.xz ruby-9b6171018a22c29feeab7635376da16f6051ecdb.zip | |
* parse.y (str_extend): should check nesting parentheses in #{}.
* process.c (pst_wstopsig): returns nil unless WIFSTOPPED() is
non-zero.
* process.c (pst_wtermsig): returns nil unless WIFSIGNALED() is
non-zero.
* process.c (pst_wexitstatus): returns nil unless WIFEXITED() is
non-zero.
* eval.c (rb_thread_select): tv_sec and tv_usec should not be
negative.
* signal.c (posix_signal): do not set SA_RESTART for SIGVTALRM.
* parse.y (call_args2): block_arg may follow the first argument in
call_args2.
* eval.c (stack_check): should avoid stack length check during
raising SystemStackError exception.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
| -rw-r--r-- | signal.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -293,7 +293,12 @@ posix_signal(signum, handler) sigemptyset(&sigact.sa_mask); sigact.sa_flags = 0; #if defined(SA_RESTART) - sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */ + /* All other signals but VTALRM shall restart restartable syscall + VTALRM will cause EINTR to syscall if interrupted. + */ + if (signum != SIGVTALRM) { + sigact.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */ + } #endif #ifdef SA_NOCLDWAIT if (signum == SIGCHLD && handler == SIG_IGN) |
