Project

General

Profile

Backport #3644

thread_win32.c / native_stop_timer_thread() がタイマースレッドの終了を待たずに帰ってきてしまう。

Added by silov.e (権兵衛 名無し) about 9 years ago. Updated almost 8 years ago.

Status:
Closed
Priority:
Normal
[ruby-dev:41911]

Description

=begin
はじめまして
以下の点、少し気になりましたので報告いたします。

thread_win32.c / native_stop_timer_thread() がタイマースレッドの終了を待た
ずに帰ってきてしまう。

thread_32.c 507 行目で定義されている native_thread_join() は
w32_wait_events() を呼び出す際に、待ち時間(第3パラメータ)に 0 を指定してい
るため、スレッドの終了を待たずに帰ってきてしまいます。INFINITE を指定すべ
きです。
native_thread_join() は私が見るかぎり、native_stop_timer_thread() からしか
呼び出されていないので、他への影響はないと思います。

--- thread_win32.c 2010-06-06 08:26:43.000000000
+++ thread_win32.c 2010-07-28 12:13:27.031424000
@@ -507,7 +507,7 @@
static void
native_thread_join(HANDLE th)
{

  • w32_wait_events(&th, 1, 0, 0);
  • w32_wait_events(&th, 1, INFINITE, 0); }

win32 環境で ruby-1.9.2-rc2 ビルド中に miniruby.exe がまれにアクセス違反で
異常終了することがあります。インタプリタ終了時に呼び出される ruby_cleanup()
内では、rb_thread_stop_timer_thread() でタイマースレッドを停止してから
ruby_vm_destruct() で vm 構造体を破棄していますが、スレッド停止を待たずに
処理を続けてしまうため、プロセス終了直前にタイマースレッドに制御がわたって
しまうと、タイマースレッドが vm 構造体を参照してしまいアクセス違反が発生す
るようです。
=end

History

#1

Updated by usa (Usaku NAKAMURA) about 9 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r28834.
権兵衛, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

#2

Updated by usa (Usaku NAKAMURA) about 9 years ago

  • Category set to core
  • Status changed from Closed to Assigned
  • Assignee set to yugui (Yuki Sonoda)

=begin
backportお願いします...

それはそれとして、これはとても素晴らしい報告でした。
どなたか存じませんが本当にありがとうございました。
RubyKaigiにいらっしゃるようでしたらお声をかけてくだされば
缶ジュースの1本くらいは奢ります。
=end

#3

Updated by silov.e (権兵衛 名無し) about 9 years ago

=begin
迅速な対応、ありがとうございます。
こちらこそ開発陣の皆様の努力には感謝の言葉もありません。
暑い日が続くようですので、体調にも気をつけてご自愛くださいませ。
田舎暮らしのうえ、ネット接続にも事欠くほどの困った状況ですので、
オフラインでもオンラインでもお会いすることはかないませんが。
=end

#4

Updated by usa (Usaku NAKAMURA) about 9 years ago

  • Status changed from Assigned to Closed

=begin
r28855でmameさんによってバックポートされたので閉じます。
ありがとうございました。

=end

#5

Updated by naruse (Yui NARUSE) almost 8 years ago

  • Target version deleted (1.9.2)

Also available in: Atom PDF