Browse Source

junction: RemoteControl: fix incoming message polling

master
Denis Tereshkin 4 years ago
parent
commit
b06b02a092
  1. 4
      src/ATrade/Driver/Junction/RemoteControl.hs

4
src/ATrade/Driver/Junction/RemoteControl.hs

@ -98,13 +98,15 @@ handleRemoteControl timeout = do
sock <- asks peRemoteControlSocket sock <- asks peRemoteControlSocket
logger <- asks peLogAction logger <- asks peLogAction
evs <- poll (fromIntegral timeout) [Sock sock [In] Nothing] evs <- poll (fromIntegral timeout) [Sock sock [In] Nothing]
unless (null evs) $ do case evs of
(x:_) -> unless (null x) $ do
rawRequest <- liftIO $ receive sock rawRequest <- liftIO $ receive sock
case parseRemoteControlRequest rawRequest of case parseRemoteControlRequest rawRequest of
Left err -> logErrorWith logger "RemoteControl" ("Unable to parse request: " <> (T.pack . show) err) Left err -> logErrorWith logger "RemoteControl" ("Unable to parse request: " <> (T.pack . show) err)
Right request -> do Right request -> do
response <- handleRequest request response <- handleRequest request
liftIO $ send sock [] (makeRemoteControlResponse response) liftIO $ send sock [] (makeRemoteControlResponse response)
_ -> return ()
where where
handleRequest (StartRobot inst) = do handleRequest (StartRobot inst) = do
startRobot inst startRobot inst

Loading…
Cancel
Save