Thread 1 Thread2 X1=2 X2=2 ================================================================= Step A -> "S:X:1:1" Step B -> 1 message (ours) to process. Step C -> return 2 ------------------------------------------- Timeslice Step A -> "S:X:2:4" Step B -> 1 msg to process -> "S:X:2:4" Step C -> return 2 ------------------------------------------- Timeslice Step D -> 2+1 = 3 Step E -> "A:X:1:7:3" Step F -> X1=3 -> Enqueue "A:X:1:9:3" -> T2 ------------------------------------------- Timeslice Step D -> 2+1=3 Step E -> "A:X:2:11:3" Step F -> 2 msgs to process -> "A:X:1:9:3" -> X2=3 -> "A:X:2:11:3" -> X2=3 !!!Bang!!! =================================================================