diff Todo @ 450:21cb16b7f3df

block message in Editor.write()
author one
date Thu, 23 Sep 2010 18:15:37 +0900
parents 89a326696c54
children d295e84c5e03
line wrap: on
line diff
--- a/Todo	Wed Sep 22 22:11:58 2010 +0900
+++ b/Todo	Thu Sep 23 18:15:37 2010 +0900
@@ -1,3 +1,45 @@
+Thu Sep 23 14:57:57 JST 2010
+
+やっぱり、send が
+
+    Editor Object から Editor へのsend
+    他の Editor Object から Editor へのsend
+
+の二つに使われているのはダメだよ。片方をブロックしたい時があるのだから。
+
+sendNext で分割してブロックはできた。問題は、途中で送られたものをどう
+処理するかだが〜
+
+うーん、すでにSession Manager の送信キューに入っているので、
+blocking が効かないようだ。
+
+そういうわけなので、受け側でなんとかした方が良いみたい。
+可能なの? いや、無理だろうな。
+
+    REPNode.send  他のところからの送信
+    REPNode.write Serverの送信ループ
+
+なので、Editor.write() で捕まえるか。
+
+Thu Sep 23 12:13:19 JST 2010
+
+START_MERGE から START_MERGE_ACK までにEditorから送られたコマンドは、
+sentList に付け加えるべきでは?
+
+しかし、その間、外部からEditorに送るコマンドは止める必要がある。
+
+    Editor.merging     ...  START_MERGE ... START_MERGE_ACK ... END_MERGE
+    Translaotr.merging ...  START_MERGE_ACK ... END_MERGE
+
+と言うように区別するか。
+
+START_MERGE は、 Editor から返って来るタイミングでブロックするので、
+その段階で、Editor へ送られているコマンドをブロックできない。
+もちろん、Editor からのUSER_INPUTもブロックできない。
+
+Editorの undoが正しくなくなるだけでなく、
+Merge phase  のコマンドが二つ続けて送られるのはよろしくない。
+
 Wed Sep 22 19:59:26 JST 2010
 
 NOPを廻す方式とAckを廻す方式は、