diff options
author | Paul Phillips <paulp@improving.org> | 2010-11-14 03:55:38 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-11-14 03:55:38 +0000 |
commit | 298738e95935563c302d4a15cef8207c4f15be97 (patch) | |
tree | 153c618379bf1cde9786d506cfbd0d6fab9f2d15 | |
parent | e1780e9686914d835b295e125511368eeb1d0733 (diff) | |
download | scala-298738e95935563c302d4a15cef8207c4f15be97.tar.gz scala-298738e95935563c302d4a15cef8207c4f15be97.tar.bz2 scala-298738e95935563c302d4a15cef8207c4f15be97.zip |
Merge branch 'master' of /scala/trunk
-rw-r--r-- | src/library/scala/concurrent/Channel.scala | 8 |
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 |