自己紹介

太田一樹。
東京の大学の情報科学科に通う大学生。moratorium満喫中。

お勧め書籍 [全部見る]

飾り

Search


Category Archives

Recent Entries

  1. 論文
  2. JJUG CCCでプレゼンします
  3. kzk's bookshelf
  4. En Google by Gulfweed
  5. PNUTS
  6. コメントスパム対策
  7. Hadoop + Luceneで分散インデクシング
  8. Hadoopの解析資料
  9. Cluster 2008
  10. SWoPP 2008

2007年02月18日

pthread_mutex_unlock忘れ

static int
func1(void)
 {
  pthread_mutex_lock(&mutex);

  int r = func2();
  if (is_error(r)) {
    return -1;
  }

  pthread_mutex_unlock(&mutex);
  return 0;
}

この手のバグは本当に取りづらい。具合が悪い事に、あるサービス用のクライアントライブラリだったのでこのコードを使っている全てのインスタンスが数十時間後にdeadlockで止まった。

func1がネットワークがらみのコードだったので、偶然ネットワークが不調になってエラーになり、次にこの関数に突入したときに固まったようである。

今回は人の目にお世話になって、debug出来た。なんでこの場所に限ってRAIIを使わなかったのだろう(自分)...。


trackbacks

trackbackURL:

『pthread_mutex_unlock忘れ』の関連記事

comments

comment form
comment form