[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: Error process-filter/sentinel when exec w3m-delete-buffer



>> On Wed, 05 Nov 2003 12:46:30 +0900 (JST)
>> 「白井」== shirai@rdmg.mgcs.mei.co.jp (Hideyuki SHIRAI (白井秀行)) said as follows:

白井> ここまでは問題ないと思うのですが、*w3m* buffer を直接 
白井> kill-buffer したときもエラーしちゃまずいだろうということで、
白井> w3m-process-kill-stray-processes() という関数を作って迷子の
白井> process を kill するようにもしたのですが、少々自信がありません。

単にエラーを避けるだけなら,sentinel function を呼び出す前に 
w3m-current-buffer も残っているか検査するようにすればいいんじゃないで
しょうか.そうすると,非同期プロセスを呼び出す時は w3m-current-buffer 
の設定は必須なのかなあ,やっぱり.

白井> たとえば、Antenna の reload をしているときに kill-buffer すると、
白井> 迷子のプロセスがひとつだけ残ってしまうときもあるようなのです
白井> が。。。

現行の HEAD は,redirect を追い掛ける場合は非同期に動作しません.また,
再現条件を特定できていませんが,redirect 時に無限ループになる問題もあ
るようです.また,以前指摘した通り,cache 周りの問題も抱えていますので,
antenna さえ動くようになったら experimental-async 枝に移行する予定です.

白井> # というわけで、とりあえず HEAD に commit して援軍募集中 ^^;;;

というわけで,検討するなら experimental-async 枝でお願いします.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )

diff -u -u -r1.35 w3m-proc.el
--- w3m-proc.el	5 Nov 2003 03:39:42 -0000	1.35
+++ w3m-proc.el	5 Nov 2003 05:00:20 -0000
@@ -532,11 +532,12 @@
 		    (let ((w3m-process-exit-status)
 			  (w3m-current-buffer
 			   (w3m-process-handler-parent-buffer x)))
-		      (when realm
-			(w3m-process-set-authinfo w3m-current-url
-						  realm user passwd))
-		      (funcall (w3m-process-handler-function x)
-			       exit-status))))))
+		      (when (buffer-name w3m-current-buffer)
+			(when realm
+			  (w3m-process-set-authinfo w3m-current-url
+						    realm user passwd))
+			(funcall (w3m-process-handler-function x)
+				 exit-status)))))))
 	  ;; Something wrong has been occured.
 	  (catch 'last
 	    (dolist (obj w3m-process-queue)