File tree Expand file tree Collapse file tree 4 files changed +19
-14
lines changed
core/src/main/scala/scala/collection
junit/src/test/scala/scala/collection/concurrent Expand file tree Collapse file tree 4 files changed +19
-14
lines changed Original file line number Diff line number Diff line change @@ -131,19 +131,19 @@ trait AtomicIndexFlag extends Signalling {
131131 abstract override def setIndexFlag (f : Int ) = intflag.set(f)
132132 abstract override def setIndexFlagIfGreater (f : Int ) = {
133133 var loop = true
134- do {
134+ while (loop) {
135135 val old = intflag.get
136136 if (f <= old) loop = false
137137 else if (intflag.compareAndSet(old, f)) loop = false
138- } while (loop)
138+ }
139139 }
140140 abstract override def setIndexFlagIfLesser (f : Int ) = {
141141 var loop = true
142- do {
142+ while (loop) {
143143 val old = intflag.get
144144 if (f >= old) loop = false
145145 else if (intflag.compareAndSet(old, f)) loop = false
146- } while (loop)
146+ }
147147 }
148148}
149149
Original file line number Diff line number Diff line change @@ -180,15 +180,16 @@ trait AdaptiveWorkStealingTasks extends Tasks {
180180 def spawnSubtasks () = {
181181 var last : AWSTWrappedTask [R , Tp ] = null
182182 var head : AWSTWrappedTask [R , Tp ] = this
183- do {
183+ while ( {
184184 val subtasks = head.split
185185 head = subtasks.head
186186 for (t <- subtasks.tail.reverse) {
187187 t.next = last
188188 last = t
189189 t.start()
190190 }
191- } while (head.body.shouldSplitFurther)
191+ head.body.shouldSplitFurther
192+ }) ()
192193 head.next = last
193194 head
194195 }
Original file line number Diff line number Diff line change @@ -79,10 +79,11 @@ class ConcurrentMapSpec extends Spec {
7979 for (i <- 0 until sz) {
8080 val j = (offs + i) % sz
8181 var k = Int .MaxValue
82- do {
82+ while ( {
8383 if (k != Int .MaxValue ) repeats += 1
8484 k = ct.getOrElse(new Wrap (j), 0 )
85- } while (! ct.replace(new Wrap (j), k, - k))
85+ ! ct.replace(new Wrap (j), k, - k)
86+ }) ()
8687 }
8788 // println("Thread %d repeats: %d".format(index, repeats))
8889 }
@@ -154,13 +155,14 @@ class ConcurrentMapSpec extends Spec {
154155 for (j <- 0 until sz) {
155156 val i = (offs + j) % sz
156157 var success = false
157- do {
158+ while ( {
158159 if (ct.contains(new Wrap (i))) {
159160 success = ct.remove(new Wrap (i)) != None
160161 } else {
161162 success = ct.putIfAbsent(new Wrap (i), i) == None
162163 }
163- } while (! success)
164+ ! success
165+ }) ()
164166 }
165167 }
166168 }
Original file line number Diff line number Diff line change @@ -79,10 +79,11 @@ class ConcurrentMapSpec extends Spec {
7979 for (i <- 0 until sz) {
8080 val j = (offs + i) % sz
8181 var k = Int .MaxValue
82- do {
82+ while ( {
8383 if (k != Int .MaxValue ) repeats += 1
8484 k = ct.getOrElse(new Wrap (j), 0 )
85- } while (! ct.replace(new Wrap (j), k, - k))
85+ ! ct.replace(new Wrap (j), k, - k)
86+ }) ()
8687 }
8788 // println("Thread %d repeats: %d".format(index, repeats))
8889 }
@@ -154,13 +155,14 @@ class ConcurrentMapSpec extends Spec {
154155 for (j <- 0 until sz) {
155156 val i = (offs + j) % sz
156157 var success = false
157- do {
158+ while ( {
158159 if (ct.contains(new Wrap (i))) {
159160 success = ct.remove(new Wrap (i)) != None
160161 } else {
161162 success = ct.putIfAbsent(new Wrap (i), i) == None
162163 }
163- } while (! success)
164+ ! success
165+ }) ()
164166 }
165167 }
166168 }
You can’t perform that action at this time.
0 commit comments