Mercurial > hg > RemoteEditor > REPSessionManager
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を廻す方式は、