ときわです。

Windowsでmod_rubyを使ってRubyプログラムからflockを使うと
operation が強制的にLOCK_NBと論理和(OR)演算され、おかしな動作または
エラーになります。
LOCK_NBと論理和(OR)演算される個所は ruby-1.8.2-src/file.c の下記の部分

2910:     if (rb_thread_alone() || (op & LOCK_NB)) {
2911: 	return flock(fd, op);
2912:     }
2913:     op |= LOCK_NB;
2914:     while (flock(fd, op) < 0) {

エラーになるのは operation にLOCK_UN を指定した時です。
(EINVALが返されるのはflock_winnt関数)
以上なんですが、これは難しくて自分には手が出せません。
どのように対処すればよいでしょうか?よろしくお願いします。

--------
常盤亮太