diff --git a/ChangeLog b/ChangeLog index 9a0c3500df..8e94150fec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,25 @@ Wed May 31 04:06:41 2000 Wakou Aoyama - * lib/cgi.rb: change: CGI#out() - if "HEAD" == REQUEST_METHOD then output only HTTP header. + * lib/cgi.rb: change: CGI#out() if "HEAD" == REQUEST_METHOD then + output only HTTP header. + +Wed May 31 01:54:21 2000 Yukihiro Matsumoto + + * eval.c (rb_thread_schedule): set main_thread->status to + THREAD_TO_KILL, before raising deadlock error. + + * eval.c (rb_thread_deadlock): if curr_thread == main_thread, do + not call rb_thread_restore_context() + +Tue May 30 23:33:41 2000 Katsuyuki Komatsu + + * ext/extmk.rb.in (have_library, have_func): remove unnecessary + try_link() call from the mswin32 platform branch. + + * lib/mkmf.rb (have_library, have_func): ditto. + + * lib/mkmf.rb (create_makefile): add $(TARGET).ilk and *.pdb + to cleanup files for mswin32. Mon May 29 10:41:10 2000 Nobuyoshi Nakada diff --git a/eval.c b/eval.c index abf4396017..0a92e4615e 100644 --- a/eval.c +++ b/eval.c @@ -6635,6 +6635,9 @@ rb_thread_fd_close(fd) static void rb_thread_deadlock() { + if (curr_thread == main_thread) { + rb_raise(rb_eFatal, "Thread: deadlock"); + } curr_thread = main_thread; th_raise_argc = 1; th_raise_argv[0] = rb_exc_new2(rb_eFatal, "Thread: deadlock"); @@ -6877,17 +6880,17 @@ rb_thread_schedule() curr_thread->file = ruby_sourcefile; curr_thread->line = ruby_sourceline; FOREACH_THREAD_FROM(curr, th) { - fprintf(stderr, "deadlock 0x%lx: %d:%d %s - %s:%d:\n", + fprintf(stderr, "deadlock 0x%lx: %d:%d %s - %s:%d\n", th->thread, th->status, th->wait_for, th==main_thread?"(main)":"", th->file, th->line); } END_FOREACH_FROM(curr, th); - rb_thread_deadlock(); next = main_thread; - rb_thread_ready(next); next->gid = 0; + rb_thread_ready(next); next->status = THREAD_TO_KILL; + rb_thread_deadlock(); } if (next->status == THREAD_RUNNABLE && next == curr_thread) { return; diff --git a/ext/extmk.rb.in b/ext/extmk.rb.in index 44232da7a1..0c134671ec 100644 --- a/ext/extmk.rb.in +++ b/ext/extmk.rb.in @@ -174,16 +174,8 @@ def have_library(lib, func="main") #include #include int main() { return 0; } -int t() { #{func}(); return 0; } -SRC - unless r - r = try_link(<<"SRC", libs) -#include -#include -int main() { return 0; } int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; } SRC - end else r = try_link(<<"SRC", libs) int main() { return 0; } @@ -226,16 +218,8 @@ def have_func(func) #include #include int main() { return 0; } -int t() { #{func}(); return 0; } -SRC - unless r - r = try_link(<<"SRC", libs) -#include -#include -int main() { return 0; } int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; } SRC - end else r = try_link(<<"SRC", libs) int main() { return 0; } diff --git a/file.c b/file.c index 94f1ecb628..6d99c3016d 100644 --- a/file.c +++ b/file.c @@ -1950,7 +1950,7 @@ is_absolute_path(path) const char *path; { if (path[0] == '/') return 1; -# if defined(MSDOS) || defined(NT) || defined(__human68k__) || defined(__EMX__) +# if defined DOSISH if (path[0] == '\\') return 1; if (strlen(path) > 2 && path[1] == ':') return 1; # endif diff --git a/lib/mkmf.rb b/lib/mkmf.rb index c2b1fef688..14016f7a88 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -159,16 +159,8 @@ def have_library(lib, func="main") #include #include int main() { return 0; } -int t() { #{func}(); return 0; } -SRC - unless r - r = try_link(<<"SRC", libs) -#include -#include -int main() { return 0; } int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; } SRC - end else r = try_link(<<"SRC", libs) int main() { return 0; } @@ -221,16 +213,8 @@ def have_func(func) #include #include int main() { return 0; } -int t() { #{func}(); return 0; } -SRC - unless r - r = try_link(<<"SRC", libs) -#include -#include -int main() { return 0; } int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; } SRC - end else r = try_link(<<"SRC", libs) int main() { return 0; } @@ -405,7 +389,7 @@ EXEEXT = #{CONFIG["EXEEXT"]} all: $(DLLIB) clean:; @$(RM) *.#{$OBJEXT} *.so *.sl *.a $(DLLIB) - @$(RM) $(TARGET).lib $(TARGET).exp + @$(RM) $(TARGET).lib $(TARGET).exp $(TARGET).ilk *.pdb @$(RM) Makefile extconf.h conftest.* @$(RM) core ruby$(EXEEXT) *~ diff --git a/version.h b/version.h index e07486f936..400516474c 100644 --- a/version.h +++ b/version.h @@ -1,4 +1,4 @@ #define RUBY_VERSION "1.5.4" -#define RUBY_RELEASE_DATE "2000-05-30" +#define RUBY_RELEASE_DATE "2000-05-31" #define RUBY_VERSION_CODE 154 -#define RUBY_RELEASE_CODE 20000530 +#define RUBY_RELEASE_CODE 20000531 diff --git a/win32/config.status b/win32/config.status index aed17e8d6e..cdb7ac6abe 100644 --- a/win32/config.status +++ b/win32/config.status @@ -6,7 +6,7 @@ s%@CXXFLAGS@%%g s%@FFLAGS@%%g s%@DEFS@% -DUSE_THREAD -DSIZEOF_INT=4 -DSIZEOF_SHORT=2 -DSIZEOF_LONG=4 -DSIZEOF_VOIDP=4 -DSIZEOF_FLOAT=4 -DSIZEOF_DOUBLE=8 -DHAVE_PROTOTYPES=1 -DHAVE_STDARG_PROTOTYPES=1 -DHAVE_STDLIB_H=1 -DHAVE_LIMITS_H=1 -DHAVE_FCNTL_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ST_RDEV=1 -DGETGROUPS_T=int -DRETSIGTYPE=void -DHAVE_ALLOCA=1 -DHAVE_FMOD=1 -DHAVE_WAITPID=1 -DHAVE_GETCWD=1 -DHAVE_CHSIZE=1 -DHAVE_GETGROUPS=1 -DHAVE_GETLOGIN=1 -DRSHIFT=\(x,y\)\ \(\(x\)\>\>y\) -DFILE_COUNT=_cnt -DDLEXT=\".so\" -DDLEXT2=\".dll\" -DRUBY_PLATFORM=\"i386-mswin32\" %g -s%@LDFLAGS@%$(CFLAGS) -Fm%g +s%@LDFLAGS@%-nologo -Ox%g s%@LIBS@%user32.lib advapi32.lib wsock32.lib%g s%@exec_prefix@%${prefix}%g s%@prefix@%/usr/local%g