From 7d6f1e7e4e8c9024f886f32804d5e341cd14bd11 Mon Sep 17 00:00:00 2001 From: Iulian Dragos Date: Tue, 13 Apr 2010 22:50:37 +0000 Subject: Fixed deadlocking behavior in actors. Specialization removed a 'private' modifier on Actor.resumeActor. Mixin did not mix this method in actor implementations, believing it was private. At runtime, an AbstractMethodError was thrown, but swallowed by forkjoin (probably), resulting in an apparent deadlock. It would have been much faster to find and fix if the stacktrace was printed, as it is in Java 1.5. No review. --- src/actors/scala/actors/Reactor.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/actors') diff --git a/src/actors/scala/actors/Reactor.scala b/src/actors/scala/actors/Reactor.scala index a5bdcf1dd9..85dcd57189 100644 --- a/src/actors/scala/actors/Reactor.scala +++ b/src/actors/scala/actors/Reactor.scala @@ -195,7 +195,7 @@ trait Reactor[Msg >: Null] extends OutputChannel[Msg] with Combinators { * * @param handler a partial function with message patterns and actions */ - protected[actors] def react(handler: PartialFunction[Msg, Unit]): Nothing = { + protected def react(handler: PartialFunction[Msg, Unit]): Nothing = { synchronized { drainSendBuffer(mailbox) } searchMailbox(mailbox, handler, false) throw Actor.suspendException -- cgit v1.2.3