• Alfredo Di Napoli's avatar
    Use Async.race in serverCLI start-all to fix initialisation bug · d4dca13d
    Alfredo Di Napoli authored
    This commit uses the `race` function from the async library to fix a bug
    where exceptions raised from the server async wouldn't be caught by the
    top-level code.
    
    The bug was stemming from the fact that `runAllWorkers` is **blocking**,
    despite its usage of `forConcurrently_`. Therefore we were never
    actually running the `wait` function below, but rather we were hanging
    waiting on the result of the first function.
    
    As a result the server could die but the workers could keep the main
    thread alive, causing the bug we just saw as part of #463.
    d4dca13d
API.hs 9.59 KB