summaryrefslogtreecommitdiff
path: root/src/interactive
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2015-09-02 12:50:23 +1000
committerJason Zaugg <jzaugg@gmail.com>2015-09-02 13:43:11 +1000
commit06ad297a07716910814651acd60736978aa54d63 (patch)
tree92df185fbf38870c712b8f6e2c328799093d0390 /src/interactive
parent1566196669bb74891a2116236b3e76ea340f6c29 (diff)
downloadscala-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')
-rw-r--r--src/interactive/scala/tools/nsc/interactive/Global.scala3
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")
}