* eval.c (rb_thread_cleanup): should not modify the global
variable curr_thread. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a7ed0fe4f9
commit
c7c1384e60
@ -1,3 +1,8 @@
|
|||||||
|
Wed Aug 21 16:43:19 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||||
|
|
||||||
|
* eval.c (rb_thread_cleanup): should not modify the global
|
||||||
|
variable curr_thread.
|
||||||
|
|
||||||
Wed Aug 21 16:14:26 2002 WATANABE Hirofumi <eban@ruby-lang.org>
|
Wed Aug 21 16:14:26 2002 WATANABE Hirofumi <eban@ruby-lang.org>
|
||||||
|
|
||||||
* configure.in: set ac_cv_func__setjmp to "no" on Cygwin.
|
* configure.in: set ac_cv_func__setjmp to "no" on Cygwin.
|
||||||
|
11
eval.c
11
eval.c
@ -8866,13 +8866,14 @@ rb_thread_wait_other_threads()
|
|||||||
static void
|
static void
|
||||||
rb_thread_cleanup()
|
rb_thread_cleanup()
|
||||||
{
|
{
|
||||||
rb_thread_t th;
|
rb_thread_t curr, th;
|
||||||
|
|
||||||
while (curr_thread->status == THREAD_KILLED) {
|
curr = curr_thread;
|
||||||
curr_thread = curr_thread->prev;
|
while (curr->status == THREAD_KILLED) {
|
||||||
|
curr = curr_thread->prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
FOREACH_THREAD(th) {
|
FOREACH_THREAD_FROM(curr, th) {
|
||||||
if (th->status != THREAD_KILLED) {
|
if (th->status != THREAD_KILLED) {
|
||||||
rb_thread_ready(th);
|
rb_thread_ready(th);
|
||||||
th->gid = 0;
|
th->gid = 0;
|
||||||
@ -8883,7 +8884,7 @@ rb_thread_cleanup()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
END_FOREACH(th);
|
END_FOREACH_FROM(curr, th);
|
||||||
}
|
}
|
||||||
|
|
||||||
int rb_thread_critical;
|
int rb_thread_critical;
|
||||||
|
@ -295,6 +295,25 @@ SRC
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_executable(bin, path = nil)
|
||||||
|
if path.nil?
|
||||||
|
path = ENV['PATH'].split(Config::CONFIG['PATH_SEPARATOR'])
|
||||||
|
else
|
||||||
|
path = path.split(Config::CONFIG['PATH_SEPARATOR'])
|
||||||
|
end
|
||||||
|
|
||||||
|
bin += "@EXEEXT@"
|
||||||
|
for dir in path
|
||||||
|
file = File.join(dir, bin)
|
||||||
|
if FileTest.executable?(file)
|
||||||
|
return file
|
||||||
|
else
|
||||||
|
next
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
def arg_config(config, default=nil)
|
def arg_config(config, default=nil)
|
||||||
unless defined? $configure_args
|
unless defined? $configure_args
|
||||||
$configure_args = {}
|
$configure_args = {}
|
||||||
|
7
io.c
7
io.c
@ -2378,10 +2378,9 @@ static VALUE
|
|||||||
rb_io_putc(io, ch)
|
rb_io_putc(io, ch)
|
||||||
VALUE io, ch;
|
VALUE io, ch;
|
||||||
{
|
{
|
||||||
char c[2];
|
char c = NUM2CHR(ch);
|
||||||
c[0] = NUM2CHR(ch);
|
|
||||||
c[1] = '\0';
|
rb_io_write(io, rb_str_new(&c, 1));
|
||||||
rb_io_write(io, rb_str_new(c, 1));
|
|
||||||
return ch;
|
return ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
24
lib/mkmf.rb
24
lib/mkmf.rb
@ -351,6 +351,30 @@ SRC
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def find_executable(bin, path = nil)
|
||||||
|
printf "checking for %s... ", bin
|
||||||
|
STDOUT.flush
|
||||||
|
|
||||||
|
if path.nil?
|
||||||
|
path = ENV['PATH'].split(Config::CONFIG['PATH_SEPARATOR'])
|
||||||
|
else
|
||||||
|
path = path.split(Config::CONFIG['PATH_SEPARATOR'])
|
||||||
|
end
|
||||||
|
|
||||||
|
bin += Config::CONFIG['EXEEXT']
|
||||||
|
for dir in path
|
||||||
|
file = File.join(dir, bin)
|
||||||
|
if FileTest.executable?(file)
|
||||||
|
print "yes\n"
|
||||||
|
return file
|
||||||
|
else
|
||||||
|
next
|
||||||
|
end
|
||||||
|
end
|
||||||
|
print "no\n"
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
def arg_config(config, default=nil)
|
def arg_config(config, default=nil)
|
||||||
$configure_args.fetch(config, default)
|
$configure_args.fetch(config, default)
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user