[前][次][番号順一覧][スレッド一覧]

ruby-changes:52243

From: normal <ko1@a...>
Date: Sun, 19 Aug 2018 04:03:51 +0900 (JST)
Subject: [ruby-changes:52243] normal:r64451 (trunk): Revert "thread.c (sleep_*): check interrupt before changing th->status"

normal	2018-08-19 04:03:44 +0900 (Sun, 19 Aug 2018)

  New Revision: 64451

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=64451

  Log:
    Revert "thread.c (sleep_*): check interrupt before changing th->status"
    
    This reverts commit 9e59487a38d914275bedcde723923f22b3779e59 (r64449)
    
    More (but different) CI failures I can't reproduce locally...
    http://ci.rvm.jp/results/trunk-test@ruby-sky3/1235951

  Modified files:
    trunk/thread.c
Index: thread.c
===================================================================
--- thread.c	(revision 64450)
+++ thread.c	(revision 64451)
@@ -1186,8 +1186,8 @@ sleep_forever(rb_thread_t *th, unsigned https://github.com/ruby/ruby/blob/trunk/thread.c#L1186
     int woke;
 
     status  = fl & SLEEP_DEADLOCKABLE ? THREAD_STOPPED_FOREVER : THREAD_STOPPED;
-    RUBY_VM_CHECK_INTS_BLOCKING(th->ec);
     th->status = status;
+    RUBY_VM_CHECK_INTS_BLOCKING(th->ec);
     while (th->status == status) {
 	if (fl & SLEEP_DEADLOCKABLE) {
 	    th->vm->sleeper++;
@@ -1292,8 +1292,8 @@ sleep_timespec(rb_thread_t *th, struct t https://github.com/ruby/ruby/blob/trunk/thread.c#L1292
 
     getclockofday(&end);
     timespec_add(&end, &ts);
-    RUBY_VM_CHECK_INTS_BLOCKING(th->ec);
     th->status = THREAD_STOPPED;
+    RUBY_VM_CHECK_INTS_BLOCKING(th->ec);
     while (th->status == THREAD_STOPPED) {
 	native_sleep(th, &ts);
 	woke = vm_check_ints_blocking(th->ec);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]