|
Scala example source code file (PresentationCompilerThread.scala)
The Scala PresentationCompilerThread.scala source code/* NSC -- new Scala compiler * Copyright 2009-2011 Scala Solutions and LAMP/EPFL * @author Martin Odersky * @author Iulian Dragos */ package scala.tools.nsc.interactive /** A presentation compiler thread. This is a lightweight class, delegating most * of its functionality to the compiler instance. * */ final class PresentationCompilerThread(var compiler: Global, name: String = "") extends Thread("Scala Presentation Compiler [" + name + "]") { /** The presentation compiler loop. */ override def run() { compiler.debugLog("starting new runner thread") while (compiler ne null) try { compiler.checkNoResponsesOutstanding() compiler.log.logreplay("wait for more work", { compiler.scheduler.waitForMoreWork(); true }) compiler.pollForWork(compiler.NoPosition) while (compiler.isOutOfDate) { try { compiler.backgroundCompile() } catch { case ex: FreshRunReq => compiler.debugLog("fresh run req caught, starting new pass") } compiler.log.flush() } } catch { case ex @ ShutdownReq => compiler.debugLog("exiting presentation compiler") compiler.log.close() // make sure we don't keep around stale instances compiler = null case ex => compiler.log.flush() ex match { case ex: FreshRunReq => compiler.debugLog("fresh run req caught outside presentation compiler loop; ignored") // This shouldn't be reported case _ : Global#ValidateException => // This will have been reported elsewhere compiler.debugLog("validate exception caught outside presentation compiler loop; ignored") case _ => ex.printStackTrace(); compiler.informIDE("Fatal Error: "+ex) } } } } Other Scala examples (source code examples)Here is a short list of links related to this Scala PresentationCompilerThread.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.