summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-11-14 03:55:38 +0000
committerPaul Phillips <paulp@improving.org>2010-11-14 03:55:38 +0000
commit298738e95935563c302d4a15cef8207c4f15be97 (patch)
tree153c618379bf1cde9786d506cfbd0d6fab9f2d15 /src/library
parente1780e9686914d835b295e125511368eeb1d0733 (diff)
downloadscala-298738e95935563c302d4a15cef8207c4f15be97.tar.gz
scala-298738e95935563c302d4a15cef8207c4f15be97.tar.bz2
scala-298738e95935563c302d4a15cef8207c4f15be97.zip
Merge branch 'master' of /scala/trunk
Diffstat (limited to 'src/library')
-rw-r--r--src/library/scala/concurrent/Channel.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/library/scala/concurrent/Channel.scala b/src/library/scala/concurrent/Channel.scala
index 865d0187f6..588deb9830 100644
--- a/src/library/scala/concurrent/Channel.scala
+++ b/src/library/scala/concurrent/Channel.scala
@@ -35,8 +35,12 @@ class Channel[A] {
}
def read: A = synchronized {
- while (null == written.next) {
- nreaders += 1; wait(); nreaders -= 1
+ while (written.next == null) {
+ try {
+ nreaders += 1
+ wait()
+ }
+ finally nreaders -= 1
}
val x = written.elem
written = written.next