New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Future.foreach throws scala.actors.SuspendActorControl #5574
Comments
Imported From: https://issues.scala-lang.org/browse/SI-5574?orig=1 |
Joseph Shraibman (jks) said: scala.actors.SuspendActorControl
at scala.actors.SuspendActorControl.scala$util$control$NoStackTrace$$super$fillInStackTrace(Actor.scala:872)
at scala.util.control.NoStackTrace$class.fillInStackTrace(NoStackTrace.scala:21)
at scala.actors.SuspendActorControl.fillInStackTrace(Actor.scala:872)
at java.lang.Throwable.<init>(Throwable.java:181)
at scala.actors.SuspendActorControl.<init>(Actor.scala:872)
at scala.actors.Actor$.suspendException(Actor.scala:54)
at scala.actors.Actor$class.searchMailbox(Actor.scala:453)
at scala.actors.ActorProxy.searchMailbox(ActorProxy.scala:19)
at scala.actors.Reactor$class.react(Reactor.scala:202)
at scala.actors.ActorProxy.scala$actors$ReplyReactor$$super$react(ActorProxy.scala:19)
at scala.actors.ReplyReactor$class.react(ReplyReactor.scala:108)
at scala.actors.ActorProxy.scala$actors$Actor$$super$react(ActorProxy.scala:19)
at scala.actors.Actor$class.react(Actor.scala:598)
at scala.actors.ActorProxy.react(ActorProxy.scala:19)
at scala.actors.Channel.react(Channel.scala:76)
at scala.actors.FutureActor.respond(Future.scala:64)
at scala.Responder.foreach(Responder.scala:71)
at $line3.$read$$iw$$iw$.liftedTree1$1(<console>:9)
at $line3.$read$$iw$$iw$.<init>(<console>:9)
at $line3.$read$$iw$$iw$.<clinit>(<console>)
at $line3.$eval$.<init>(<console>:7)
at $line3.$eval$.<clinit>(<console>)
at $line3.$eval.$print(<console>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:758)
at scala.tools.nsc.interpreter.IMain$Request$$anonfun$13.apply(IMain.scala:990)
at scala.tools.nsc.interpreter.Line.scala$tools$nsc$interpreter$Line$$runAndSetState(Line.scala:41)
at scala.tools.nsc.interpreter.Line$$anonfun$2.apply$mcV$sp(Line.scala:47)
at scala.tools.nsc.io.package$$anon$2.run(package.scala:19)
at java.lang.Thread.run(Thread.java:662)
|
Joseph Shraibman (jks) said: That stack trace was from the current git head btw. The stack trace generated by 2.9.1 looks slightly different. |
@adriaanm said: |
Joseph Shraibman (jks) said: object Temp extends App{
val fut = scala.actors.Futures.future({ Thread.sleep(1000) ; 1 + 1 })
fut.foreach( println _ )
} |
@adriaanm said: |
Minimized test-case:
Old description follows.
Doing this in the repl:
results in:
Problem was mentioned here: http://www.scala-lang.org/node/9298
I think the problem is this:
foreach defined in scala.Responder:
Future respond() is:
When the Future is not set foreach calls react on the input channel, which calls react back on the future. In Reactor.scala line 200:
See also: #3458
The text was updated successfully, but these errors were encountered: