前に書いたように、GW後半戦にtoppers/jspのpthreadへの移植に挑戦。
pthread_mutexを使ってタスクコンテクストの切り替えはできるようになった。xUnit環境と割り切って使うので、割り込みのサポートはしなかった。
だけど、実はこれは大きな制限だったことが実装後に判明。システムクロック割り込みを受け付けないため、周期ハンドラによるiwup_tsk()などが動作しないのである。やられた orz...
んで、しょうがないので各スレッドにSIGUSR1でも送って、シグナルハンドラ内でCPU使用権のpthread_mutexを解放しようかなあ… と軽く考えていたのだけど、これもうまくないらしい。
シグナルハンドラ内ではasync signal safeな関数しか使えないので、pthread_mutex_unlockなども使えないそうなのだ orz...
pthread_mutexじゃなくて、パイプを使ったメッセージパッシング方式に切り替えるしかないかなあ…
2007-05-08
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿