summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFacundo Domínguez <facundo.dominguez@tweag.io>2021-04-02 17:11:07 +0000
committerZubin Duggal <zubin.duggal@gmail.com>2021-09-21 22:28:27 +0530
commit030f3c45c1c6e07b6e99a0072afd96131325766d (patch)
treede7f5bc4972d092fe564f6e354a3ca3c4d64a479
parent39ad330caae9f05a5bf07f2134aa58d1f4ed4739 (diff)
downloadhaskell-030f3c45c1c6e07b6e99a0072afd96131325766d.tar.gz
Report actual port in libiserv:Remote.Slave.startSlave
This allows to start iserv by passing port 0 to startSlave, which in turns allows to get an available port when no port is known to be free a priori. (cherry picked from commit b39dec86df8106a2bb4770758941572073ad57a2) (cherry picked from commit 80e6fd527e60028ecc4f7724f2b9c8705bfd9175)
-rw-r--r--libraries/libiserv/src/Remote/Slave.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/libraries/libiserv/src/Remote/Slave.hs b/libraries/libiserv/src/Remote/Slave.hs
index 577161f35f..4c150becfa 100644
--- a/libraries/libiserv/src/Remote/Slave.hs
+++ b/libraries/libiserv/src/Remote/Slave.hs
@@ -62,11 +62,12 @@ startSlave' verbose base_path port = do
hSetBuffering stdout LineBuffering
sock <- openSocket port
+ actualPort <- socketPort sock
+ putStrLn $ "Listening on port " ++ show actualPort
forever $ do
when verbose $ trace "Opening socket"
pipe <- acceptSocket sock >>= socketToPipe
- putStrLn $ "Listening on port " ++ show port
when verbose $ trace "Starting serv"
uninterruptibleMask $ serv verbose (hook verbose base_path pipe) pipe
when verbose $ trace "serv ended"