[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: asynchronous process
>> On Thu, 07 Aug 2003 14:49:41 +0900
>> 「土」== tsuchiya@pine.kuee.kyoto-u.ac.jp (TSUCHIYA Masatoshi) said as follows:
土> 既知の不具合として antenna が動かなくなっています.
かなり adhoc なやり方なんですが,一応,experimental-async 枝でも
antenna が動くようにしました.
それから,[emacs-w3m:05481] で書いた
>> On Wed, 16 Jul 2003 14:04:54 +0900
>> 「土」== tsuchiya@pine.kuee.kyoto-u.ac.jp (TSUCHIYA Masatoshi) said as follows:
土> 実は,つい1週間ほど前に気が付いたのですが,現在の emacs-w3m の
土> cache 周りには,cache を同定するためのキーの一貫性が取れていないと
土> 言う深刻な問題が隠れています.
土> 現在の cache は,w3m-w3m-retrieve() / w3m-w3m-attributes() が呼び
土> 出されたときに指定されていた URL をキーとして保存されています.そ
土> のため,
土> http://emacs-w3m.namazu.org
土> というような URL を指定すると,この URL をキーとして cache を保管
土> します.しかし実際には,
土> http://emacs-w3m.namazu.org/
土> と / を付加された URL にアクセスしていて,w3m-current-url には,こ
土> ちらの値が代入されます.
土> この状態で w3m-copy-buffer() を呼び出すと,実際の URL である
土> http://emacs-w3m.namazu.org/ をキーとして cache を検索しますが,見
土> つからずに非同期プロセスが呼び出されることになります.
土> また,http://emacs-w3m.namazu.org/ml などを指定すると,これはサー
土> バー側の機能で redirect されて http://emacs-w3m.namazu.org/ml/ に
土> 誘導されますから,同様の問題が発生します.
土> でもって,この問題をきちんと修正するためには,cache を実際の URL
土> をキーとして保管するように改良する必要があるのですが,実際の URL
土> が確定する時点と言うものについて,もう少し観察しないといけないよう
土> です.
という問題についてですが,とりあえず,cache は実際の URI で管理される
ようにして,
w3m-w3m-attributes
=> redirection を追跡せずに,単純に指定された URI のへッダを返
す.したがって,指定された URI をキーとして cache に登録す
ることができる.
w3m-w3m-retrieve
=> 自力で redirection を追跡する.追跡によって,URI が変わる度
に,cache に登録していく.
ようにしてみました.この実装だと,
(equal (w3m-attributes "http://emacs-w3m.namazu.org/info")
(w3m-attributes "http://emacs-w3m.namazu.org/info/"))
=> nil
となりますので,若干,直観的ではないかなあという気もするのですが….
ああ,そうか antenna で指定している URI が実際には redirect されて別の
個所に飛ばされるような URI の場合には,問題になりそうですね.そうする
と,w3m-attributes も redirection を追い掛ける必要があるのか,うーん.
とりあえず,今日は時間切れ.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )