[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:4310] Meadow のデッドロック?
- X-ml-count: 4310
- Subject: [MD:4310] Meadow のデッドロック?
- From: "M.Fujii" <boochang@xxxxxxxxxxxx>
- Date: Mon, 31 Mar 2003 20:15:12 +0900 (JST)
- X-mailer: Mew version 3.2 on Emacs 21.2 / Mule 5.0 (SAKAKI)
藤井です。
以下の条件で Meadow が固まってしまいます。
1. -q オプション付きで Meadow を起動する。
2. (mw32-ime-initialize) を評価する。
3. 適当にファイルを開いて編集し、保存せずにウィンドウ右上の × をクリッ
クして Meadow を終了させようとする。
4. 保存していないファイルをどうするか問い合わせるポップアップが表示さ
れたら、すかさず別のアプリケーションのウィンドウをアクティブにする。
Windows 2000sp3, NT 4.0sp5 で発生しました。
1.99a5 および 1.99a6-dev(2003/03/24) で確認しています(cygwin 版です)。
gdb で様子を見たところ、W32_BLOCK_INPUT の呼び出しでデッドロックしてい
るようです。
メッセージスレッドで W32_BLOCK_INPUT を呼び出す直前のスタックを表示さ
せてみると以下のようになります(1.99a5 のものです)。
thr 1 は Fset_window_configuration でクリティカルセクションにはいっています。
thr 2 は mw32m_new_focus_frame でクリティカルセクションにはいります。
# [MD:4167] の backtrace と結構似ているように思います。関係があるのか
# もしれません。
以上ご報告まで。
------------------------------------------------------------
(gdb) i thr
4 thread 334.0x4d 0x77f57ec7 in ?? ()
3 thread 334.0x12d 0x77f57ec7 in ?? ()
* 2 thread 334.0x14b mw32m_new_focus_frame (dpyinfo=0x1e81e00, f=0x0)
at mw32fns.c:2942
1 thread 334.0x112 0x77e421a4 in LocalSrcStringTable ()
(gdb) thr 2
[Switching to thread 2 (thread 334.0x14b)]#0 mw32m_new_focus_frame (
dpyinfo=0x1e81e00, f=0x0) at mw32fns.c:2942
(gdb) where
#0 mw32m_new_focus_frame (dpyinfo=0x1e81e00, f=0x0) at mw32fns.c:2942
#1 0x01167123 in mw32_WndProc (hwnd=0xe046e, msg=8, wParam=0, lParam=0)
at mw32fns.c:3061
#2 0x77e42137 in LocalSrcStringTable ()
#3 0x77e42183 in LocalSrcStringTable ()
#4 0x77f663b3 in ?? ()
#5 0x77e42722 in LocalSrcStringTable ()
#6 0x01194bc6 in mw32_message_loop (sd=0, bufp=0x111b7fb0, numchars=8192,
expected=0) at mw32term.c:8378
#7 0x01195d83 in mw32_async_handle_message (params=0x0) at mw32term.c:8889
#8 0x77ed4f05 in ?? ()
(gdb) thr 1
[Switching to thread 1 (thread 334.0x112)]#0 0x77e421a4 in LocalSrcStringTable
()
(gdb) where
#0 0x77e421a4 in LocalSrcStringTable ()
#1 0x77e424ff in LocalSrcStringTable ()
#2 0x77e43377 in LocalSrcStringTable ()
#3 0x0117ece6 in Ffep_get_mode () at mw32ime.c:630
#4 0x01021aed in Ffuncall (nargs=1, args=0x82e870) at eval.c:2658
#5 0x01128e2b in Fbyte_code (bytestr=835763504, vector=1104836092, maxdepth=2)
at bytecode.c:716
#6 0x010223d4 in funcall_lambda (fun=1104836068, nargs=2, arg_vector=0x82ead4)
at eval.c:2853
#7 0x01021d3f in Ffuncall (nargs=3, args=0x82ead0) at eval.c:2709
#8 0x0102132d in run_hook_with_args (nargs=3, args=0x82ead0,
cond=to_completion) at eval.c:2332
#9 0x0102108c in Frun_hook_with_args (nargs=3, args=0x82ead0) at eval.c:2227
#10 0x0102149f in run_hook_with_args_2 (hook=299042288, arg1=298958792,
arg2=1105841664) at eval.c:2402
#11 0x010a231c in Fselect_window (window=1105841664) at window.c:2761
#12 0x010a6dc0 in Fset_window_configuration (configuration=1105898176)
at window.c:5057
#13 0x0102298c in unbind_to (count=2, value=298958792) at eval.c:3016
#14 0x0101ed7d in unwind_to_catch (catch=0x82fd40, value=1376093164)
at eval.c:1078
#15 0x0101f72d in Fsignal (error_symbol=298987664, data=298958792)
at eval.c:1469
#16 0x01128f34 in Fbyte_code (bytestr=835694584, vector=1104789380,
maxdepth=11) at bytecode.c:752
#17 0x010223d4 in funcall_lambda (fun=1104503268, nargs=5, arg_vector=0x82ee54)
at eval.c:2853
#18 0x01021d3f in Ffuncall (nargs=6, args=0x82ee50) at eval.c:2709
#19 0x01128e2b in Fbyte_code (bytestr=835199096, vector=1104502980, maxdepth=8)
at bytecode.c:716
#20 0x01020970 in Feval (form=1371625608) at eval.c:2025
#21 0x0101dba2 in Fprogn (args=1371625600) at eval.c:437
#22 0x010a781f in Fsave_window_excursion (args=1371625600) at window.c:5384
#23 0x011294b3 in Fbyte_code (bytestr=835199076, vector=1104502968, maxdepth=1)
at bytecode.c:865
#24 0x010223d4 in funcall_lambda (fun=1104502828, nargs=2, arg_vector=0x82f294)
at eval.c:2853
#25 0x01021d3f in Ffuncall (nargs=3, args=0x82f290) at eval.c:2709
#26 0x01128e2b in Fbyte_code (bytestr=835196908, vector=1104502344, maxdepth=5)
at bytecode.c:716
#27 0x010223d4 in funcall_lambda (fun=1104502312, nargs=0, arg_vector=0x82f474)
at eval.c:2853
#28 0x01021d3f in Ffuncall (nargs=1, args=0x82f470) at eval.c:2709
#29 0x01128e2b in Fbyte_code (bytestr=835196776, vector=1104502256, maxdepth=4)
at bytecode.c:716
#30 0x010223d4 in funcall_lambda (fun=1104502224, nargs=1, arg_vector=0x82f684)
at eval.c:2853
#31 0x01021d3f in Ffuncall (nargs=2, args=0x82f680) at eval.c:2709
#32 0x010d2508 in Fcall_interactively (function=299001992,
record_flag=298958792, keys=1105833312) at callint.c:797
#33 0x010130a4 in Fcommand_execute (cmd=299001992, record_flag=298958792,
keys=1105833312, special=298959104) at keyboard.c:9436
#34 0x01007d51 in read_char (commandflag=1, nmaps=3, maps=0x82fa44,
prev_event=298958792, used_mouse_menu=0x82faf4) at keyboard.c:2672
#35 0x01010ada in read_key_sequence (keybuf=0x82fc60, bufsize=30,
prompt=298958792, dont_downcase_last=0, can_return_switch_frame=1,
fix_current_buffer=1) at keyboard.c:8389
#36 0x010057d6 in command_loop_1 () at keyboard.c:1451
#37 0x0101f25c in internal_condition_case (bfun=0x1005468 <command_loop_1>,
handlers=298960136, hfun=0x1004f30 <cmd_error>) at eval.c:1273
#38 0x01005234 in command_loop_2 () at keyboard.c:1256
#39 0x0101ed18 in internal_catch (tag=299029880,
func=0x1005210 <command_loop_2>, arg=298958792) at eval.c:1036
#40 0x010051e8 in command_loop () at keyboard.c:1235
#41 0x01004cfb in recursive_edit_1 () at keyboard.c:961
#42 0x01004e29 in Frecursive_edit () at keyboard.c:1017
#43 0x01003466 in main (argc=1, argv=0xa50890, envp=0xa501a0) at emacs.c:1687
#44 0x01001170 in __mingw_CRTStartup ()
#45 0x01001013 in mainCRTStartup ()
(gdb)
--
藤井 正行 / Masayuki FUJII ( boochang@xxxxxxxxxxxx )