Advertisement
Guest User

Relacy Output

a guest
Mar 30th, 2016
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.46 KB | None | 0 0
  1. struct queue_test
  2. DATA RACE (data race detected)
  3. iteration: 1
  4.  
  5. execution history (85):
  6. [0] 3: [CTOR BEGIN], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
  7. [1] 3: memory allocation: addr=01041BD4, size=516, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(11)
  8. [2] 3: <010419C0> store, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(11)
  9. [3] 3: <01041A08> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(12)
  10. [4] 3: <01041A70> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(13)
  11. [5] 3: <01041AD8> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(14)
  12. [6] 3: <01041B40> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(15)
  13. [7] 3: [CTOR END], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
  14. [8] 3: [BEFORE BEGIN], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
  15. [9] 3: [BEFORE END], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
  16. [10] 1: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  17. [11] 1: <01041AD8> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  18. [12] 1: <01041AD8> CAS succ orig=0, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  19. [13] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  20. [14] 1: <01041BD4> store, value=16, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  21. [15] 1: <01041B40> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  22. [16] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
  23. [17] 1: <01041B40> atomic store, value=1, (prev value=0), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
  24. [18] 1: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  25. [19] 3: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  26. [20] 2: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  27. [21] 1: <01041AD8> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  28. [22] 2: <01041A08> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  29. [23] 1: <01041AD8> CAS succ orig=1, cmp=1, xchg=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  30. [24] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  31. [25] 1: <01041BE4> store, value=17, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  32. [26] 2: <01041A08> CAS succ orig=0, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
  33. [27] 2: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
  34. [28] 2: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  35. [29] 2: <01041BD4> load, value=16, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  36. [30] 0: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  37. [31] 3: <01041A08> atomic load, value=0 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  38. [32] 3: <01041A08> CAS fail orig=1, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
  39. [33] 3: yield(1), in queue_test::thread, main.cpp(46)
  40. [34] 2: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(74)
  41. [35] 2: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(82)
  42. [36] 2: <01041A70> atomic store, value=1, (prev value=0), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(83)
  43. [37] 3: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  44. [38] 1: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  45. [39] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
  46. [40] 0: <01041AD8> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  47. [41] 0: <01041AD8> CAS succ orig=2, cmp=2, xchg=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  48. [42] 0: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  49. [43] 0: <01041BF4> store, value=0, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  50. [44] 0: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  51. [45] 0: yield(1), in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(41)
  52. [46] 3: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  53. [47] 3: yield(1), in queue_test::thread, main.cpp(46)
  54. [48] 1: <01041B40> atomic store, value=2, (prev value=1), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
  55. [49] 1: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  56. [50] 2: <01041B40> atomic load, value=1 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  57. [51] 2: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  58. [52] 2: yield(1), in queue_test::thread, main.cpp(46)
  59. [53] 1: <01041AD8> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  60. [54] 0: <01041B40> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  61. [55] 0: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
  62. [56] 3: <01041B40> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  63. [57] 0: <01041B40> atomic store, value=3, (prev value=2), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
  64. [58] 3: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  65. [59] 3: <01041A08> CAS succ orig=1, cmp=1, xchg=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
  66. [60] 3: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
  67. [61] 3: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  68. [62] 3: <01041BE4> load, value=17, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  69. [63] 0: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  70. [64] 3: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(74)
  71. [65] 3: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(82)
  72. [66] 0: <01041AD8> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  73. [67] 1: <01041AD8> CAS succ orig=3, cmp=3, xchg=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  74. [68] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  75. [69] 1: <01041C04> store, value=18, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  76. [70] 2: <01041B40> atomic load, value=2 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  77. [71] 1: <01041B40> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  78. [72] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
  79. [73] 1: <01041B40> atomic store, value=4, (prev value=3), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
  80. [74] 3: <01041A70> atomic store, value=2, (prev value=1), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(83)
  81. [75] 0: <01041AD8> CAS fail orig=4, cmp=3, xchg=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  82. [76] 0: yield(1), in queue_test::thread, main.cpp(37)
  83. [77] 3: <01041B40> atomic load, value=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  84. [78] 3: <01041A08> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  85. [79] 0: <01041A70> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  86. [80] 3: <01041A08> CAS succ orig=2, cmp=2, xchg=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
  87. [81] 3: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
  88. [82] 3: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  89. [83] 3: <01041BF4> load, value=0, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  90. [84] 3: DATA RACE (data race detected), in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  91.  
  92. thread 0:
  93. [30] 0: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  94. [40] 0: <01041AD8> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  95. [41] 0: <01041AD8> CAS succ orig=2, cmp=2, xchg=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  96. [42] 0: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  97. [43] 0: <01041BF4> store, value=0, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  98. [44] 0: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  99. [45] 0: yield(1), in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(41)
  100. [54] 0: <01041B40> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  101. [55] 0: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
  102. [57] 0: <01041B40> atomic store, value=3, (prev value=2), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
  103. [63] 0: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  104. [66] 0: <01041AD8> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  105. [75] 0: <01041AD8> CAS fail orig=4, cmp=3, xchg=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  106. [76] 0: yield(1), in queue_test::thread, main.cpp(37)
  107. [79] 0: <01041A70> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  108.  
  109. thread 1:
  110. [10] 1: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  111. [11] 1: <01041AD8> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  112. [12] 1: <01041AD8> CAS succ orig=0, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  113. [13] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  114. [14] 1: <01041BD4> store, value=16, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  115. [15] 1: <01041B40> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  116. [16] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
  117. [17] 1: <01041B40> atomic store, value=1, (prev value=0), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
  118. [18] 1: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  119. [21] 1: <01041AD8> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  120. [23] 1: <01041AD8> CAS succ orig=1, cmp=1, xchg=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  121. [24] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  122. [25] 1: <01041BE4> store, value=17, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  123. [38] 1: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  124. [39] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
  125. [48] 1: <01041B40> atomic store, value=2, (prev value=1), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
  126. [49] 1: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(20)
  127. [53] 1: <01041AD8> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(21)
  128. [67] 1: <01041AD8> CAS succ orig=3, cmp=3, xchg=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(32)
  129. [68] 1: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  130. [69] 1: <01041C04> store, value=18, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(37)
  131. [71] 1: <01041B40> atomic load, value=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(39)
  132. [72] 1: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(47)
  133. [73] 1: <01041B40> atomic store, value=4, (prev value=3), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_enqueue, lockfreempmcqueue.h(48)
  134.  
  135. thread 2:
  136. [20] 2: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  137. [22] 2: <01041A08> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  138. [26] 2: <01041A08> CAS succ orig=0, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
  139. [27] 2: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
  140. [28] 2: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  141. [29] 2: <01041BD4> load, value=16, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  142. [34] 2: <01041A70> atomic load, value=0, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(74)
  143. [35] 2: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(82)
  144. [36] 2: <01041A70> atomic store, value=1, (prev value=0), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(83)
  145. [50] 2: <01041B40> atomic load, value=1 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  146. [51] 2: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  147. [52] 2: yield(1), in queue_test::thread, main.cpp(46)
  148. [70] 2: <01041B40> atomic load, value=2 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  149.  
  150. thread 3:
  151. [0] 3: [CTOR BEGIN], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
  152. [1] 3: memory allocation: addr=01041BD4, size=516, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(11)
  153. [2] 3: <010419C0> store, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(11)
  154. [3] 3: <01041A08> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(12)
  155. [4] 3: <01041A70> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(13)
  156. [5] 3: <01041AD8> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(14)
  157. [6] 3: <01041B40> atomic store, value=0, (prev value=0), order=seq_cst, in LockFreeMPMCQueue<unsigned int,32,64>::LockFreeMPMCQueue, lockfreempmcqueue.h(15)
  158. [7] 3: [CTOR END], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
  159. [8] 3: [BEFORE BEGIN], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
  160. [9] 3: [BEFORE END], in rl::context_impl<struct queue_test,class rl::random_scheduler<4> >::fiber_proc_impl, context.hpp(457)
  161. [19] 3: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  162. [31] 3: <01041A08> atomic load, value=0 [NOT CURRENT], order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  163. [32] 3: <01041A08> CAS fail orig=1, cmp=0, xchg=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
  164. [33] 3: yield(1), in queue_test::thread, main.cpp(46)
  165. [37] 3: <01041B40> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  166. [46] 3: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  167. [47] 3: yield(1), in queue_test::thread, main.cpp(46)
  168. [56] 3: <01041B40> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  169. [58] 3: <01041A08> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  170. [59] 3: <01041A08> CAS succ orig=1, cmp=1, xchg=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
  171. [60] 3: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
  172. [61] 3: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  173. [62] 3: <01041BE4> load, value=17, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  174. [64] 3: <01041A70> atomic load, value=1, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(74)
  175. [65] 3: release fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(82)
  176. [74] 3: <01041A70> atomic store, value=2, (prev value=1), order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(83)
  177. [77] 3: <01041B40> atomic load, value=4, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(55)
  178. [78] 3: <01041A08> atomic load, value=2, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(56)
  179. [80] 3: <01041A08> CAS succ orig=2, cmp=2, xchg=3, order=relaxed, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(63)
  180. [81] 3: acquire fence, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(71)
  181. [82] 3: <010419C0> load, value=01041BD4, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  182. [83] 3: <01041BF4> load, value=0, in LockFreeMPMCQueue<unsigned int,32,64>::try_dequeue, lockfreempmcqueue.h(72)
  183. [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