Home > Unix Archive

Unix Archive

flock(2)はスレッドも排他するか?

  • 2007-05-26 (Sat)
  • Unix
  • hatena button
  • hatena count
  • save this page del.icio.us

以前人づてに、flock(2)がプロセス間排他はするけどスレッド間排他はしないという話を聞いた。
これが本当だと、今まで自分が書いたマルチスレッドアプリケーションのファイルを扱う部分の根幹が揺らいでしまう。特にファイルが壊れたりするような現象は見られなかったので今まで放置してきたが、非常に心配になってきたので調べてみた。

Continue reading

spliceシステムコールの使い方

  • 2007-05-18 (Fri)
  • Unix
  • hatena button
  • hatena count
  • save this page del.icio.us

Linux 2.6.17より導入された新しいシステムコールである「splice(2)」を使ったファイルコピープログラムを作ってみました。
参考: C言語: UNIX最速ファイルコピー
参考: splice(2) - splice data to/from a pipe

Continue reading

pthread_mutex_unlock忘れ

  • 2007-02-18 (Sun)
  • 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を使わなかったのだろう(自分)…。

PTHREAD_MUTEX_ERRORCHECK_NP

  • 2007-02-15 (Thu)
  • Unix
  • hatena button
  • hatena count
  • save this page del.icio.us

pthreadのmutexではpthread_mutex_initでattributeが付けられますが、PTHREAD_MUTEX_ERRORCHECK_NPというattributeが有るのを見つけたので適当に浅追いしてみました。

Continue reading

Multicore Programming Primerが面白すぎる

  • 2007-01-30 (Tue)
  • Unix
  • hatena button
  • hatena count
  • save this page del.icio.us

MITの「Multicore Programming Primer」というコースの資料が面白すぎます。
Multicore Programming Primer

Continue reading

Home > Unix Archive

お薦め本
広告
Archives
Categories

Return to page top