>What you are saying is that the problem could be something like:

>-> Tclunk
>(do not wait for response)
>-> Topen (the file is exclusive)

no, because what actually happens is closer to
        A: Topen
        ...
        queue request to *another process* to send Tclunk
        ...
        A: Topen

leading to either case 1
        A: Topen
        B: Tclunk
        A: Topen

or case 2
        A: Topen
        A: Topen
        B: Tclunk

depending on the scheduling of the two processes A and B

introducing that other process introduces a new race, that simply did not exist 
before, because
that other process didn't exist before. you always got case 1.

and indeed, with the test i ran on the modified system usually it gets case 1
because of timing, but eventually a case 2 shows up and the second open fails.

Reply via email to