diff options
author | Guillaume Martres <smarter@ubuntu.com> | 2017-04-15 21:14:26 +0200 |
---|---|---|
committer | Guillaume Martres <smarter@ubuntu.com> | 2017-04-15 21:14:26 +0200 |
commit | 934ab5b341a4c2548041138893d8a0dd4c8d4aa6 (patch) | |
tree | d1c55176a276379b758026099ee52c08b65e22b2 /sbt-bridge/src/xsbt/CompilerClassLoader.scala | |
parent | d773a32c9731dd5b105ac718900f8217fa75bcb2 (diff) | |
download | dotty-934ab5b341a4c2548041138893d8a0dd4c8d4aa6.tar.gz dotty-934ab5b341a4c2548041138893d8a0dd4c8d4aa6.tar.bz2 dotty-934ab5b341a4c2548041138893d8a0dd4c8d4aa6.zip |
Make CompilerClassLoader#fixBridgeLoader synchronized
This method could be called from multiple threads since sbt could
run multiple `compile` task in parallel.
Diffstat (limited to 'sbt-bridge/src/xsbt/CompilerClassLoader.scala')
-rw-r--r-- | sbt-bridge/src/xsbt/CompilerClassLoader.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sbt-bridge/src/xsbt/CompilerClassLoader.scala b/sbt-bridge/src/xsbt/CompilerClassLoader.scala index c0bdcb5e9..071141dcf 100644 --- a/sbt-bridge/src/xsbt/CompilerClassLoader.scala +++ b/sbt-bridge/src/xsbt/CompilerClassLoader.scala @@ -80,8 +80,9 @@ object CompilerClassLoader { * @param bridgeLoader The classloader that sbt uses to load the compiler bridge * @return A fixed classloader that works with dotty */ - def fixBridgeLoader(bridgeLoader: ClassLoader): ClassLoader = + def fixBridgeLoader(bridgeLoader: ClassLoader): ClassLoader = synchronized { fixedLoaderCache.getOrElseUpdate(bridgeLoader, computeFixedLoader(bridgeLoader)) + } private[this] def computeFixedLoader(bridgeLoader: ClassLoader) = bridgeLoader match { case bridgeLoader: URLClassLoader => |