fix hang if external program is not available
startExternal' throws an exception, which left the externalAsync TMVar empty, so the next try to use it would hang.
This commit is contained in:
parent
168bf5e0c5
commit
d00ce82418
2 changed files with 3 additions and 0 deletions
|
@ -616,6 +616,7 @@ startExternal external =
|
||||||
liftIO (atomically $ takeTMVar (externalAsync external)) >>= \case
|
liftIO (atomically $ takeTMVar (externalAsync external)) >>= \case
|
||||||
UncheckedExternalAsync -> do
|
UncheckedExternalAsync -> do
|
||||||
(st, extensions) <- startExternal' external
|
(st, extensions) <- startExternal' external
|
||||||
|
`onException` store UncheckedExternalAsync
|
||||||
if asyncExtensionEnabled extensions
|
if asyncExtensionEnabled extensions
|
||||||
then do
|
then do
|
||||||
relay <- liftIO $ runRelayToExternalAsync external st
|
relay <- liftIO $ runRelayToExternalAsync external st
|
||||||
|
|
|
@ -56,3 +56,5 @@ With the first commit before the merge checked out (0900bb2ca), the
|
||||||
|
|
||||||
[[!meta author=kyle]]
|
[[!meta author=kyle]]
|
||||||
[[!tag projects/datalad]]
|
[[!tag projects/datalad]]
|
||||||
|
|
||||||
|
> [[fixed|done]] thanks for reporting --[[Joey]]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue