We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents d9b0ac3 + db8a7ce commit 95f2b12Copy full SHA for 95f2b12
src/main/scala/org/learningconcurrency/ch3/LockFreePool.scala
@@ -33,9 +33,9 @@ object LockFreePool {
33
def remove(): Option[T] = {
34
val start = (Thread.currentThread.getId % buckets.length).toInt
35
@tailrec def scan(witness: Long): Option[T] = {
36
- var i = (start + 1) % buckets.length
+ var i = start
37
var sum = 0L
38
- while (i != start) {
+ do {
39
val bucket = buckets(i)
40
41
@tailrec def retry(): Option[T] = {
@@ -55,7 +55,7 @@ object LockFreePool {
55
}
56
57
i = (i + 1) % buckets.length
58
- }
+ } while (i != start)
59
if (sum == witness) None
60
else scan(sum)
61
0 commit comments