Skip to content

Commit dc6e53c

Browse files
authored
Merge pull request #384 from keynmol/fix-concurrent-linker-access
Prevent concurrent access to SJS linker
2 parents f103ee4 + 90459b3 commit dc6e53c

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

mdoc-js/src/main/scala-2.12/mdoc/modifiers/JsModifier.scala

+5-5
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import org.scalajs.linker.standard.MemIRFileImpl
2828
import org.scalajs.linker.interface.LinkerOutput
2929
import org.scalajs.linker.MemOutputFile
3030
import java.util.concurrent.Executor
31+
import scala.concurrent.ExecutionContext.Implicits.global
3132

3233
class JsModifier extends mdoc.PreModifier {
3334
override val name = "js"
@@ -42,10 +43,6 @@ class JsModifier extends mdoc.PreModifier {
4243
var reporter: mdoc.Reporter = new ConsoleReporter(System.out)
4344
var gensym = new Gensym()
4445

45-
implicit val synchronousExecutionContext = ExecutionContext.fromExecutor(new Executor {
46-
def execute(task: Runnable) = task.run()
47-
})
48-
4946
val sjsLogger: Logger = new Logger {
5047
override def log(level: Level, message: => String): Unit = {
5148
if (level >= config.minLevel) {
@@ -167,7 +164,10 @@ class JsModifier extends mdoc.PreModifier {
167164
""
168165
} else {
169166
val output = MemOutputFile.apply()
170-
linker.link(virtualIrFiles ++ sjsir, Nil, LinkerOutput.apply(output), sjsLogger)
167+
168+
val linking = linker.link(virtualIrFiles ++ sjsir, Nil, LinkerOutput.apply(output), sjsLogger)
169+
Await.result(linking, Duration.Inf)
170+
171171
ctx.settings.toInputFile(ctx.inputFile) match {
172172
case None =>
173173
ctx.reporter.error(

0 commit comments

Comments
 (0)