1 -- !!! test multiple-reader single-writer locking semantics
5 file1 = "openFile005.out1"
6 file2 = "openFile005.out2"
9 putStrLn "two writes (should fail)"
10 h <- openFile file1 WriteMode
11 try (openFile file1 WriteMode) >>= print
14 putStrLn "write and an append (should fail)"
15 h <- openFile file1 WriteMode
16 try (openFile file1 AppendMode) >>= print
19 putStrLn "read/write and a write (should fail)"
20 h <- openFile file1 ReadWriteMode
21 try (openFile file1 WriteMode) >>= print
24 putStrLn "read and a read/write (should fail)"
25 h <- openFile file1 ReadMode
26 try (openFile file1 ReadWriteMode) >>= print
29 putStrLn "write and a read (should fail)"
30 h <- openFile file1 WriteMode
31 try (openFile file1 ReadMode) >>= print
34 putStrLn "two writes, different files (silly, but should succeed)"
35 h1 <- openFile file1 WriteMode
36 h2 <- openFile file2 WriteMode
40 putStrLn "two reads, should succeed"
41 h1 <- openFile file1 ReadMode
42 h2 <- openFile file1 ReadMode