スレッドの優先順位?

49 views
Skip to first unread message

syuju

unread,
May 16, 2013, 11:07:22 PM5/16/13
to haske...@googlegroups.com
連投すみません、またお知恵を貸してください。

TCP/IP通信スレッドとGUI(gtk2hs)の連携で困った状況が出ています。

このアプリはサーバ側で、外部からのコマンドに応じてデータを表示します。
そのコマンドシーケンスが、GUI側のイベントと同期(例えば、マウスクリックや再描画のタイミング)でしか進まないようです。

接続自体は特に遅延なく完了するのですが、スレッド内に記述された送受信関数になかなか処理の順番が回ってこないようです。
GUI無しの状態(通信スレッド内の処理を別プログラムとして実行)で確認すると、このような遅延は生じません。

通信スレッドの優先順位が低いか、受信割り込みがあっても受信関数(recv)に処理が移らないことが原因だと思いますが、どのような対処をすればよいか分かりません・・・。

何かヒントを頂けると助かります。 m( _ _ )m

○実行環境
OS : FreeBSD 9.1
ghc : Ver 7.4.2
package : network-2.4.1.2, gtk 0.12.4

Mitsutoshi Aoe

unread,
May 17, 2013, 12:57:30 AM5/17/13
to haske...@googlegroups.com
こんにちは。

コードがないので推測ですが、threadedなランタイムを使うと直ったり
しませんか?

2013年5月17日 12:07 syuju <tetsuya...@gmail.com>:
> --
> このメールは Google グループのグループ「haskell-jp」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、haskell-jp+...@googlegroups.com
> にメールを送信します。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
>

--
Mitsutoshi Aoe
ma...@foldr.in

syuju

unread,
May 17, 2013, 2:32:33 AM5/17/13
to haske...@googlegroups.com
Aoe さん。

早速のお返事ありがとうございます。

ご指摘の方法で想定したように動くようになりました!
ghc -threaded --make xxx.hs

ありがとうございました。 m ( _ _ ) m


2013年5月17日金曜日 13時57分30秒 UTC+9 Mitsutoshi Aoe:
こんにちは。

コードがないので推測ですが、threadedなランタイムを使うと直ったり
しませんか?

2013年5月17日 12:07 syuju <tetsuya...@gmail.com>:
> 連投すみません、またお知恵を貸してください。
>
> TCP/IP通信スレッドとGUI(gtk2hs)の連携で困った状況が出ています。
>
> このアプリはサーバ側で、外部からのコマンドに応じてデータを表示します。
> そのコマンドシーケンスが、GUI側のイベントと同期(例えば、マウスクリックや再描画のタイミング)でしか進まないようです。
>
> 接続自体は特に遅延なく完了するのですが、スレッド内に記述された送受信関数になかなか処理の順番が回ってこないようです。
> GUI無しの状態(通信スレッド内の処理を別プログラムとして実行)で確認すると、このような遅延は生じません。
>
> 通信スレッドの優先順位が低いか、受信割り込みがあっても受信関数(recv)に処理が移らないことが原因だと思いますが、どのような対処をすればよいか分かりません・・・。
>
> 何かヒントを頂けると助かります。 m( _ _ )m
>
> ○実行環境
> OS : FreeBSD 9.1
> ghc : Ver 7.4.2
> package : network-2.4.1.2, gtk 0.12.4
>
> --
> このメールは Google グループのグループ「haskell-jp」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、haskell-jp+unsubscribe@googlegroups.com
Reply all
Reply to author
Forward
0 new messages