Repository navigation
Commit bbf2a71
committed
Add the ordering demonstration: own-queue LIFO drain and a steal from a dedicated thread
DrainOwnQueue fills a bag and drains it on the same thread, which returns the
items last in, first out. DrainStolenQueue fills the bag on one dedicated thread
and drains it on another, so the consumer steals from the head of the producer's
queue and the items come back oldest first.
Both use dedicated Thread objects with Join(), never Task.Run: the pool is free
to hand the producer and the consumer to the same thread, which makes the
consumer pop its own queue LIFO instead of stealing and the assertion
intermittently red.
Two tests added. The suite runs 10 of 10 on five consecutive runs.1 parent d81e19d commit bbf2a71
2 files changed
Lines changed: 64 additions & 0 deletions
File tree
- collections-csharp/ConcurrentBagInCSharp
- ConcurrentBagInCSharp
- Tests
Lines changed: 48 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
85 | 133 | | |
86 | 134 | | |
87 | 135 | | |
| |||
Lines changed: 16 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
66 | 82 | | |
67 | 83 | | |
68 | 84 | | |
| |||
0 commit comments