diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2016-11-18 09:00:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-18 09:00:30 +0100 |
commit | 40f8df19ced57637a795c705080e528d82303248 (patch) | |
tree | d791ddfd964b8eea8dfd170f5b86dff9d0e66a49 /src/library/scala/sys/process/ProcessBuilderImpl.scala | |
parent | 4fe94a2ded7bf64b3d665e32f95978f5c0927805 (diff) | |
parent | fbcfba212fff76272c509c6781ea2a2897d84bff (diff) | |
download | scala-40f8df19ced57637a795c705080e528d82303248.tar.gz scala-40f8df19ced57637a795c705080e528d82303248.tar.bz2 scala-40f8df19ced57637a795c705080e528d82303248.zip |
Merge pull request #5481 from som-snytt/issue/10007-process
SI-10007 sys.process thread sync
Diffstat (limited to 'src/library/scala/sys/process/ProcessBuilderImpl.scala')
-rw-r--r-- | src/library/scala/sys/process/ProcessBuilderImpl.scala | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/library/scala/sys/process/ProcessBuilderImpl.scala b/src/library/scala/sys/process/ProcessBuilderImpl.scala index eef140c16a..0df2e648e0 100644 --- a/src/library/scala/sys/process/ProcessBuilderImpl.scala +++ b/src/library/scala/sys/process/ProcessBuilderImpl.scala @@ -53,12 +53,14 @@ private[process] trait ProcessBuilderImpl { override def run(io: ProcessIO): Process = { val success = new SyncVar[Boolean] - success put false - val t = Spawn({ - runImpl(io) - success.put(true) - }, io.daemonizeThreads) - + def go(): Unit = { + var ok = false + try { + runImpl(io) + ok = true + } finally success.put(ok) + } + val t = Spawn(go(), io.daemonizeThreads) new ThreadProcess(t, success) } } |