mirror of
https://github.com/unclechu/gRPC-haskell.git
synced 2024-11-23 03:29:42 +01:00
Make server process killable (#105)
35163c3
introduced a new use of `mask` which makes the server
process uninterruptible while waiting for a new incoming request.
This change fixes that by surrounding the logic that waits for a
new request with `unmask`. This new `unmask` should still
respect the finalization guarantees of the surrounding masked
code.
This commit is contained in:
parent
595cb6a3bf
commit
d532cec4d1
1 changed files with 1 additions and 1 deletions
|
@ -48,7 +48,7 @@ withServerCallAsync :: Server
|
||||||
-> (ServerCall -> IO ())
|
-> (ServerCall -> IO ())
|
||||||
-> IO ()
|
-> IO ()
|
||||||
withServerCallAsync s f = mask $ \unmask ->
|
withServerCallAsync s f = mask $ \unmask ->
|
||||||
serverCreateCall s >>= \case
|
unmask (serverCreateCall s) >>= \case
|
||||||
Left e -> do grpcDebug $ "withServerCallAsync: call error: " ++ show e
|
Left e -> do grpcDebug $ "withServerCallAsync: call error: " ++ show e
|
||||||
return ()
|
return ()
|
||||||
Right c -> do wasForkSuccess <- forkServer s handler
|
Right c -> do wasForkSuccess <- forkServer s handler
|
||||||
|
|
Loading…
Reference in a new issue