議論/メッセージ/cmessage廃止


Top / 議論 / メッセージ / cmessage廃止

目次

質問(cmessage)

  1. int monapi_cmessage_send_receive(monapi_clist* queue, MessageInfo* dst, dword tid, MessageInfo* info)においてdstのNULLチェックをしていますがどのような場合を想定されていますか?>Tinoさん -- ひげぽん
    • 返り値が必要な場合はdstに入れますが、返り値が必要なく単に同期で実行させるためにsend_receiveを使うときにNULLを入れます。そのため関数内部ではテンポラリなインスタンスで受け止めて、そのまま闇に葬ります。 -- Tino
    • 了解です。↓のMessage.cppにはまだ入れてないです。すいません。 -- ひげぽん
  2. cvs未コミット版のMessage.h,cppです。お手数ですが、仕様チェックをお願いします>Tinoさん
    • 【解決済】なぜかCPUが100%に・・・→receiveのせいでした
    • 【解決済】 startguiの途中で止まる。
    • お疲れ様です。チェック中です。 -- Tino
      • お手数おかけいたします。 -- ひげぽん
    • ちょっと疑問に思ったのですが、startguiの途中で止まるというのはどういうレベルまで書き換えてのことだったのでしょうか?Messageだけ差し替えても何も影響ないですよね。1のNULLの件は、サポートしないとぬるぽで落ちてしまうのでテストすら出来ないはずですし……。 -- Tino
    • すいません。どうも勘違いだったようです。 -- ひげぽん
    • とりあえずNULLの件をサポートして、コールバックで渡すとコンパイル時に静的に決められないため無意味になるequals*のinlineを省いて、漏れがないようにclistとcmessageを抜いてからすべてのもので使うようにしてみましたが、まったく問題ありませんでした(あっさり書きましたが、結構大変でした)。素晴らしいです!というわけでcommitさせていただきました。>ひげぽんさん -- Tino
      • ありがとうございます。作業お疲れ様でした。メッセージ機構を使っている部分は多岐に渡るため大変だったと思います。ありがとうございました。 -- ひげぽん

解決案(ジャッジ済)

編纂したのはTinoなので、問題があれば修正をお願いします>Gakuさん

  1. Gakuさん案その1
    • block する peek を作る。
  2. Gakuさん案その2改(賛成者:Tino)
    • フラグ1つ持って、peek でクリア、send でセット、yield でフラグがあれば、すぐ return
      • recieve してから yield するまでの間にメッセージが来ているのに yield でブロックするのは、まずい仕様ではないかと。
    • この仕組みを receive にも入れるのであれば、別段 receive と yield の両方の動作をする新 receive は必要ないです。
      • それでこれは好みですが peek と yield の関係を見れば、今の receive と yield がそのまま残っている方がしっくり来ると思います。(ブロックしない receive)
  3. Gakuさん案その3
    • メッセージを指定して待てるシステムコールを作る。

Gakuさん案2のひげぽん解釈 > Tinoさん >Gakuさん >Yui_Nekoさん >shadowさん

経緯

  1. ひげぽんがPEEK実装
  2. PEEKがあればcmessageは廃止可能とTinoさんからご指摘
  3. Tinoさんのフォローをいただきながら以下にcmessageの廃止方向でうごいてはどうか?という議論です。

cmesasgeに関して

もともとcmessageはプリミティブなものはCで作った方が良いかと思って実験的に作ったものだが、盲腸になっている観があるので、廃止してはどうか。

  1. 現状、C++で作ったのと何も変わらないような使い方しかしていない
  2. cmessageとMessageの使い分けなど無用な混乱を持ち込む結果となっている
  3. メンテナンスがしにくいような汚いコードになっている
    • ひげぽんさんからブラックボックスになっているのが最大の問題点
  4. ローカルキューという最大の盲腸を導入してしまった
    • peekの実装により、ローカルキューは廃止可能→ローカルキュー廃止

ローカルキュー廃止

議論

システムコール改造案

デッドロック対策

コメント

コメントはありません。 コメント/議論/メッセージ/cmessage廃止?

お名前:

MENU

now: 2

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 3031, today: 1, yesterday: 1

添付ファイル: fileMessage.h 629件 [詳細] fileMessage.cpp 605件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:02 (3793d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.049 sec.