pthread_cond_timedwait()の引数の時刻

pthread_cond_timedwait(3)の3つめの引数abstimeは、そのまま使う限り、マニュアルにある通り、

abstime パラメタは time(2) と gettimeofday(2) の起点を同じくする絶対時間を指定する。
になる。

ただ、組み込みなど時刻が不安定だったり頻繁に再設定されたりするシステムでは、この絶対時刻はネックになる。一気に古い時刻が設定されたりするとずっとタイムアウトしなくなってしまったりなど。2ちゃんねるのスレッドのレス58番あたりからの議論など。

今時のglibcのlibpthreadには、POSIX仕様的にオプション扱いのpthread_condattr_setclock(3)に対応しているので、それを使えばよい。具体例はこのへん。手元パソコン(Ubuntu 16.04)ではmanしても出てこなくてどうなのかと思ったけど、特に問題なく使えた。

テスト用に作ったサンプルプログラム pthread_condattr_setclock.c

このブログ記事について

このページは、らるるが2017年2月 7日 22:48に書いたブログ記事です。

ひとつ前のブログ記事は「「天使に教わる勝ち残るプロマネ」読んだ」です。

次のブログ記事は「Linux雑多メモ(2017/02/17)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.5.0