diff options
author | Yukihiro Matsumoto <matz@ruby-lang.org> | 1995-01-10 00:58:20 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-08-17 22:09:31 +0900 |
commit | 5d828b25d4ae30a000c054a724ac248dadbb97b3 (patch) | |
tree | 080fc6e3b41b9c59cf5def77ae619a82e7e252db /signal.c | |
parent | bd0c733b77b561f4d12daccebf06a7c71917000b (diff) |
version 0.64v0_64
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.64.tar.gz
Tue Jan 10 00:58:20 1995 Yukihiro Matsumoto (matz@dyna)
* eval.c: レシーバと引数は常にiterではない.
* cons.c(aref,aset): negative offset対応.
Mon Jan 9 14:40:39 1995 Yukihiro Matsumoto (matz@ix-02)
* parse.y: foo{..}の形式において,fooをローカル変数やクラス名では
なく,引数なしの関数型メソッド呼び出しとみなすようにした.
* list.c -> cons.c: 名称変更(クラス名も).
* list.c: a::b::c::nilをリスト(a b c)とみなすlisp形式から,a::b::c
をリスト(a b c)とみなすruby形式に変更.[], []=, eachもそれに会わ
せた仕様とする.
* list.c: consペアとしての機能を強調.仕様変更.
Sat Jan 7 01:26:26 1995 Yukihiro Matsumoto (matz@dyna)
* eval.c: 自己代入の不具合修正.
* eval.c(masign): 多重代入が配列もリストもとれるようにした.
* list.c: assocを2要素の配列からList(CONSペア)に変更した.
Fri Jan 6 13:42:12 1995 Yukihiro Matsumoto (matz@ix-02)
* parse.y: a[b]+=cやa.b+=cなどの自己代入形式で,aやbを2度評価しな
くなった.
* eval.c: iterator設定のバグフィックス.
* list.c: Listクラスを新設.
Thu Jan 5 13:55:00 1995 Yukihiro Matsumoto (matz@ix-02)
* parse.y: SCOPEのメモリリークをなくした.
* eval.c: built-inメソッドへの引数の引き渡し方を変更して,配列の生
成数を減らした.
* re.c: match-dataを毎回生成することをやめた.`$~'をアクセスした時
にon-demandで生成する.
* string.c etc: 不必要なmemmoveをmemcpyに置換.
* parse.y: =~, !~は副作用があるのでコンパイル時に展開できない.
Tue Jan 3 02:04:36 1995 Yukihiro Matsumoto (matz@dyna)
* eval.c: rest引数のbug fix.
* eval.c,gc.c: scopeをオブジェクトにした.
* eval.c: envとscopeの扱いを変更した.
Wed Dec 28 09:46:57 1994 Yukihiro Matsumoto (matz@ix-02)
* parse.y: evalでローカル変数が追加された場合に対応した.
* parse.y: 演算子を含むaliasのbug fix.
Tue Dec 27 16:45:20 1994 Yukihiro Matsumoto (matz@ix-02)
* parse.y: def A Bをalias A Bに変更.
* eval.c: alias関係のbug修正.nodeをオブジェクト化した時にenbugし
たようだ.
* signal.c: システムコールの再定義を止めた.
* io.c(select): write/exceptのフラグ設定にバグ.
* Makefile.in: static link用オプションをMake変数として独立させた.
Diffstat (limited to 'signal.c')
-rw-r--r-- | signal.c | 78 |
1 files changed, 6 insertions, 72 deletions
@@ -3,7 +3,7 @@ signal.c - $Author: matz $ - $Date: 1994/12/20 05:15:42 $ + $Date: 1995/01/10 10:42:53 $ created at: Tue Dec 20 10:13:44 JST 1994 ************************************************/ @@ -226,7 +226,7 @@ static VALUE trap_list[NSIG]; #ifdef SAFE_SIGHANDLE static int trap_pending_list[NSIG]; int trap_pending; -static int trap_immediate; +int trap_immediate; #endif void @@ -252,8 +252,9 @@ sighandle(sig) #endif #ifdef SAFE_SIGHANDLE - if (trap_immediate) + if (trap_immediate) { rb_trap_eval(trap_list[sig]); + } else { trap_pending++; trap_pending_list[sig]++; @@ -270,7 +271,7 @@ rb_trap_exit() rb_trap_eval(trap_list[0]); } -#if defined(SAFE_SIGHANDLE) +#ifdef SAFE_SIGHANDLE rb_trap_exec() { int i; @@ -283,74 +284,7 @@ rb_trap_exec() } } } - -#if defined(HAVE_SYSCALL) && defined(HAVE_SYSCALL_H) -#include <syscall.h> - -#ifdef SYS_read -int -read(fd, buf, nbytes) - int fd, nbytes; - char *buf; -{ - int res; - - trap_immediate++; - res = syscall(SYS_read, fd, buf, nbytes); - trap_immediate = 0; - return res; -} -#endif /* SYS_read */ - -#ifdef SYS_wait -int -wait(status) - union wait *status; -{ - int res; - - trap_immediate++; - res = syscall(SYS_wait, status); - trap_immediate =0; - return res; -} -#endif /* SYS_wait */ - -#ifdef SYS_sigpause -int -sigpause(mask) - int mask; -{ - int res; - - trap_immediate++; - res = syscall(SYS_sigpause, mask); - trap_immediate =0; - return res; -} -#endif /* SYS_sigpause */ - -/* linux syscall(select) doesn't work file. */ -#if defined(SYS_select) && !defined(linux) -#include <sys/types.h> - -int -select(nfds, readfds, writefds, exceptfds, timeout) - int nfds; - fd_set *readfds, *writefds, *exceptfds; - struct timeval *timeout; -{ - int res; - - trap_immediate++; - res = syscall(SYS_select, nfds, readfds, writefds, exceptfds, timeout); - trap_immediate =0; - return res; -} -#endif /* SYS_select */ - -#endif /* HAVE_SYSCALL_H */ -#endif /* SAFE_SIGHANDLE */ +#endif static VALUE Ftrap(argc, argv) |