【GUI】wxWidgets(旧w ..
[2ch|▼Menu]
13:9
06/10/04 02:15:41
>>11
ソースを追ってみたが、wxSafeYieldは指定したウィンドウ以下を除いて
Disable状態にした後、wxYieldを呼んでいるだけだ。
2.6.3なんだが、wxYieldからwxTheApp->Yield()内では
MT-FIXMEなどとかいた、幼稚なバグが残っているから無理。
それと、Log関数もMT Safeでないのでむりなうえ、
wxMutexGuiLeaveOrEnterはMainThread以外からの呼び出しではAssertがおきるぞ。

>>10
とりあえず、Readの先のYield呼び出しのかしょをデバッガで追って、
wxThread::Yieldにちゃんといっているかどうか確認するほうが早いよ。

Yieldを呼んでいるのは大体、wxSocket*::Wait*で、GSocketの内部でも呼んでいるのかもしれない。
GSocket::ReadもStream(TCP)なら::recvを呼んでいるだけなので、問題はなさそうだが。
GSocket::Writeもにたようなものだった。

あときになるのは、イベントも全てメインスレッドから呼ばれるから、
OnSocketEventでReadするのはMainThreadじゃない?
それだと、Multi Threadになってても、
イベント処理に行くからスタックオーバーフローしてしまいそうだが。

イベントで拾ってくるならイベントが着たら受信用スレッドにconditionなりで
知らせて、Recvさせるようにするのはどう?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5169日前に更新/262 KB
担当:undef