File tree Expand file tree Collapse file tree 1 file changed +5
-5
lines changed Expand file tree Collapse file tree 1 file changed +5
-5
lines changed Original file line number Diff line number Diff line change @@ -12,18 +12,18 @@ module Process =
12
12
// https://stackoverflow.com/a/961904/544947
13
13
type internal QueuedLock () =
14
14
let innerLock = Object()
15
- let ticketsCount = ref 0
16
- let ticketToRide = ref 1
15
+ let mutable ticketsCount = 0
16
+ let mutable ticketToRide = 1
17
17
18
18
member __.Enter () =
19
- let myTicket = Interlocked.Increment ticketsCount
19
+ let myTicket = Interlocked.Increment & ticketsCount
20
20
Monitor.Enter innerLock
21
21
22
- while myTicket <> ticketToRide.Value do
22
+ while myTicket <> Volatile.Read & ticketToRide do
23
23
Monitor.Wait innerLock |> ignore
24
24
25
25
member __.Exit () =
26
- Interlocked.Increment ticketToRide |> ignore
26
+ Interlocked.Increment & ticketToRide |> ignore
27
27
Monitor.PulseAll innerLock
28
28
Monitor.Exit innerLock
29
29
You can’t perform that action at this time.
0 commit comments