FreeBSDでaio
(id:hirose31:20070714:1184341432 の続き)
aio (aio_readとかaio_errorとかaio_returnとか) の習作中。
developerWorksのBoost application performance using asynchronous I/Oのサンプルコードに毛が生えた程度の超絶シンプルなコードがLinuxでとりあえず動いたんで、次はとFreeBSD 6.2で試してみた。
けど、いまいち芳しくない。。。
- my_aiocb.aio_sigevent.sigev_notify = SIGEV_SIGNAL の場合
- my_aiocb.aio_sigevent.sigev_notify = SIGEV_THREAD の場合
- my_aiocb.aio_sigevent.sigev_notify_functionがない。
- my_aiocb.aio_sigevent.sigev_notify_attributesもない。
- /usr/include/sys/signal.hに「* XXX missing sigev_notify_function, sigev_notify_attributes.」というコメントがある。
- sigev_notify_kqueueとかいうのがあるっぽい。
- そういえば、こっちはスレッドの中の(struct aiocb *)sigval.sival_ptrでmy_aiocbがとれてるなぁ。
- FreeBSDにはaio_waitcomplete(2)というのがあるらしい。
情報が少ない上にまだよくわかってないところがあるので試行錯誤中。
「オラ、FreeBSDでバリンバリンにaio_*使ってるヨ」という方と仲良く鳴りたい。
⇒ id:hirose31:20070721:1184950454 に続く…