2007-05-08

toppers/jsp #2

前に書いたように、GW後半戦にtoppers/jspのpthreadへの移植に挑戦。

pthread_mutexを使ってタスクコンテクストの切り替えはできるようになった。xUnit環境と割り切って使うので、割り込みのサポートはしなかった。

だけど、実はこれは大きな制限だったことが実装後に判明。システムクロック割り込みを受け付けないため、周期ハンドラによるiwup_tsk()などが動作しないのである。やられた orz...

んで、しょうがないので各スレッドにSIGUSR1でも送って、シグナルハンドラ内でCPU使用権のpthread_mutexを解放しようかなあ… と軽く考えていたのだけど、これもうまくないらしい。
シグナルハンドラ内ではasync signal safeな関数しか使えないので、pthread_mutex_unlockなども使えないそうなのだ orz...

pthread_mutexじゃなくて、パイプを使ったメッセージパッシング方式に切り替えるしかないかなあ…

0 件のコメント: