resource busy (file is locked) with multi-threaded file ops
The sample program attached creates 10 worker threads, each of which takes a different file name. Each worker thread then writes the file, reads the file, writes the file and so on. File operations use *strict IO*.
When compiled without
-threaded everything is ok, that is, the program goes on forever without any error messages.
-threaded, the program quickly fails with
ERROR in worker 4: 4: openBinaryFile: resource busy (file is locked).
Tested under Mac OSX 10.8.2 and Linux. Tested with both GHC 7.6.1 and 7.6.2.
I could reproduce the bug without +RTS -N -RTS and with this RTS option. A colleague of mine reports that it needs +RTS -N2 -RTS to reproduce the bug.