Home > Unix > pthread_mutex_unlock忘れ

pthread_mutex_unlock忘れ

  • 2007-02-18 (Sun) 19:39
  • Unix
  • hatena button
  • hatena count
  • save this page del.icio.us

[code]
static int
func1(void)
{
pthread_mutex_lock(&mutex);
int r = func2();
if (is_error(r)) {
return -1;
}
pthread_mutex_unlock(&mutex);
return 0;
}
[/code]
この手のバグは本当に取りづらい。具合が悪い事に、あるサービス用のクライアントライブラリだったのでこのコードを使っている全てのインスタンスが数十時間後にdeadlockで止まった。
func1がネットワークがらみのコードだったので、偶然ネットワークが不調になってエラーになり、次にこの関数に突入したときに固まったようである。
今回は人の目にお世話になって、debug出来た。なんでこの場所に限ってRAIIを使わなかったのだろう(自分)…。

Similar Posts:

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://kzk9.net/blog/2007/02/pthread_mutex_unlock.html/trackback
Listed below are links to weblogs that reference
pthread_mutex_unlock忘れ from moratorium

Home > Unix > pthread_mutex_unlock忘れ

お薦め本
広告
Archives
Categories

Return to page top