Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct queue_test
- DATA RACE (data race detected)
- iteration: 1
- execution history (85):
- [0] 3: [CTOR BEGIN], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
- [1] 3: memory allocation: addr=01041BD4, size=516, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(11)
- [2] 3: <010419C0> store, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(11)
- [3] 3: <01041A08> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(12)
- [4] 3: <01041A70> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(13)
- [5] 3: <01041AD8> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(14)
- [6] 3: <01041B40> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(15)
- [7] 3: [CTOR END], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
- [8] 3: [BEFORE BEGIN], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
- [9] 3: [BEFORE END], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
- [10] 1: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [11] 1: <01041AD8> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [12] 1: <01041AD8> CAS succ orig=0, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [13] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [14] 1: <01041BD4> store, value=16, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [15] 1: <01041B40> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [16] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
- [17] 1: <01041B40> atomic store, value=1, (prev value=0), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
- [18] 1: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [19] 3: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [20] 2: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [21] 1: <01041AD8> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [22] 2: <01041A08> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [23] 1: <01041AD8> CAS succ orig=1, cmp=1, xchg=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [24] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [25] 1: <01041BE4> store, value=17, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [26] 2: <01041A08> CAS succ orig=0, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
- [27] 2: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
- [28] 2: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [29] 2: <01041BD4> load, value=16, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [30] 0: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [31] 3: <01041A08> atomic load, value=0 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [32] 3: <01041A08> CAS fail orig=1, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
- [33] 3: yield(1), in queue_test::thread, main.cpp(46)
- [34] 2: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(74)
- [35] 2: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(82)
- [36] 2: <01041A70> atomic store, value=1, (prev value=0), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(83)
- [37] 3: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [38] 1: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [39] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
- [40] 0: <01041AD8> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [41] 0: <01041AD8> CAS succ orig=2, cmp=2, xchg=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [42] 0: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [43] 0: <01041BF4> store, value=0, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [44] 0: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [45] 0: yield(1), in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(41)
- [46] 3: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [47] 3: yield(1), in queue_test::thread, main.cpp(46)
- [48] 1: <01041B40> atomic store, value=2, (prev value=1), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
- [49] 1: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [50] 2: <01041B40> atomic load, value=1 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [51] 2: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [52] 2: yield(1), in queue_test::thread, main.cpp(46)
- [53] 1: <01041AD8> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [54] 0: <01041B40> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [55] 0: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
- [56] 3: <01041B40> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [57] 0: <01041B40> atomic store, value=3, (prev value=2), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
- [58] 3: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [59] 3: <01041A08> CAS succ orig=1, cmp=1, xchg=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
- [60] 3: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
- [61] 3: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [62] 3: <01041BE4> load, value=17, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [63] 0: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [64] 3: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(74)
- [65] 3: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(82)
- [66] 0: <01041AD8> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [67] 1: <01041AD8> CAS succ orig=3, cmp=3, xchg=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [68] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [69] 1: <01041C04> store, value=18, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [70] 2: <01041B40> atomic load, value=2 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [71] 1: <01041B40> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [72] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
- [73] 1: <01041B40> atomic store, value=4, (prev value=3), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
- [74] 3: <01041A70> atomic store, value=2, (prev value=1), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(83)
- [75] 0: <01041AD8> CAS fail orig=4, cmp=3, xchg=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [76] 0: yield(1), in queue_test::thread, main.cpp(37)
- [77] 3: <01041B40> atomic load, value=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [78] 3: <01041A08> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [79] 0: <01041A70> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [80] 3: <01041A08> CAS succ orig=2, cmp=2, xchg=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
- [81] 3: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
- [82] 3: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [83] 3: <01041BF4> load, value=0, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [84] 3: DATA RACE (data race detected), in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- thread 0:
- [30] 0: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [40] 0: <01041AD8> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [41] 0: <01041AD8> CAS succ orig=2, cmp=2, xchg=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [42] 0: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [43] 0: <01041BF4> store, value=0, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [44] 0: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [45] 0: yield(1), in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(41)
- [54] 0: <01041B40> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [55] 0: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
- [57] 0: <01041B40> atomic store, value=3, (prev value=2), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
- [63] 0: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [66] 0: <01041AD8> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [75] 0: <01041AD8> CAS fail orig=4, cmp=3, xchg=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [76] 0: yield(1), in queue_test::thread, main.cpp(37)
- [79] 0: <01041A70> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- thread 1:
- [10] 1: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [11] 1: <01041AD8> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [12] 1: <01041AD8> CAS succ orig=0, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [13] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [14] 1: <01041BD4> store, value=16, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [15] 1: <01041B40> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [16] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
- [17] 1: <01041B40> atomic store, value=1, (prev value=0), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
- [18] 1: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [21] 1: <01041AD8> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [23] 1: <01041AD8> CAS succ orig=1, cmp=1, xchg=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [24] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [25] 1: <01041BE4> store, value=17, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [38] 1: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [39] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
- [48] 1: <01041B40> atomic store, value=2, (prev value=1), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
- [49] 1: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
- [53] 1: <01041AD8> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
- [67] 1: <01041AD8> CAS succ orig=3, cmp=3, xchg=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
- [68] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [69] 1: <01041C04> store, value=18, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
- [71] 1: <01041B40> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
- [72] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
- [73] 1: <01041B40> atomic store, value=4, (prev value=3), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
- thread 2:
- [20] 2: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [22] 2: <01041A08> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [26] 2: <01041A08> CAS succ orig=0, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
- [27] 2: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
- [28] 2: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [29] 2: <01041BD4> load, value=16, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [34] 2: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(74)
- [35] 2: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(82)
- [36] 2: <01041A70> atomic store, value=1, (prev value=0), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(83)
- [50] 2: <01041B40> atomic load, value=1 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [51] 2: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [52] 2: yield(1), in queue_test::thread, main.cpp(46)
- [70] 2: <01041B40> atomic load, value=2 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- thread 3:
- [0] 3: [CTOR BEGIN], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
- [1] 3: memory allocation: addr=01041BD4, size=516, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(11)
- [2] 3: <010419C0> store, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(11)
- [3] 3: <01041A08> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(12)
- [4] 3: <01041A70> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(13)
- [5] 3: <01041AD8> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(14)
- [6] 3: <01041B40> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(15)
- [7] 3: [CTOR END], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
- [8] 3: [BEFORE BEGIN], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
- [9] 3: [BEFORE END], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
- [19] 3: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [31] 3: <01041A08> atomic load, value=0 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [32] 3: <01041A08> CAS fail orig=1, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
- [33] 3: yield(1), in queue_test::thread, main.cpp(46)
- [37] 3: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [46] 3: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [47] 3: yield(1), in queue_test::thread, main.cpp(46)
- [56] 3: <01041B40> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [58] 3: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [59] 3: <01041A08> CAS succ orig=1, cmp=1, xchg=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
- [60] 3: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
- [61] 3: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [62] 3: <01041BE4> load, value=17, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [64] 3: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(74)
- [65] 3: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(82)
- [74] 3: <01041A70> atomic store, value=2, (prev value=1), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(83)
- [77] 3: <01041B40> atomic load, value=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
- [78] 3: <01041A08> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
- [80] 3: <01041A08> CAS succ orig=2, cmp=2, xchg=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
- [81] 3: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
- [82] 3: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [83] 3: <01041BF4> load, value=0, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
- [84] 3: DATA RACE (data race detected), in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement