diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2015-09-02 12:50:23 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2015-09-02 13:43:11 +1000 |
commit | 06ad297a07716910814651acd60736978aa54d63 (patch) | |
tree | 92df185fbf38870c712b8f6e2c328799093d0390 /src/interactive/scala/tools/nsc | |
parent | 1566196669bb74891a2116236b3e76ea340f6c29 (diff) | |
download | scala-06ad297a07716910814651acd60736978aa54d63.tar.gz scala-06ad297a07716910814651acd60736978aa54d63.tar.bz2 scala-06ad297a07716910814651acd60736978aa54d63.zip |
Add an option to let pres compiler user manage threading
The presentation compiler currently demands that all interaction
is performed by asynchronous submission of work items, which are
queued and executed on the presentation compiler thread.
This is fairly inconvenient if you are a known-single-threaded client
that is trying to use the compiler from your own thread.
This commit adds an option to disable "assertCorrectThread" to better
support this use case.
Diffstat (limited to 'src/interactive/scala/tools/nsc')
-rw-r--r-- | src/interactive/scala/tools/nsc/interactive/Global.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/interactive/scala/tools/nsc/interactive/Global.scala b/src/interactive/scala/tools/nsc/interactive/Global.scala index 727bfdd510..1e9e66df64 100644 --- a/src/interactive/scala/tools/nsc/interactive/Global.scala +++ b/src/interactive/scala/tools/nsc/interactive/Global.scala @@ -120,6 +120,7 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") val debugIDE: Boolean = settings.YpresentationDebug.value val verboseIDE: Boolean = settings.YpresentationVerbose.value + private val anyThread: Boolean = settings.YpresentationAnyThread.value private def replayName = settings.YpresentationReplay.value private def logName = settings.YpresentationLog.value @@ -532,7 +533,7 @@ class Global(settings: Settings, _reporter: Reporter, projectName: String = "") */ @elidable(elidable.WARNING) override def assertCorrectThread() { - assert(initializing || onCompilerThread, + assert(initializing || anyThread || onCompilerThread, "Race condition detected: You are running a presentation compiler method outside the PC thread.[phase: %s]".format(globalPhase) + " Please file a ticket with the current stack trace at https://www.assembla.com/spaces/scala-ide/support/tickets") } |