mirror of https://github.com/voidlizard/hbs2
wip, hunting busyloop
This commit is contained in:
parent
541ecccd0b
commit
78c168fcaa
|
@ -392,10 +392,10 @@ runMessagingTCP env@MessagingTCP{..} = liftIO do
|
|||
-- client sockets
|
||||
|
||||
-- смотрим к кому надо
|
||||
who <- atomically do
|
||||
who <- atomically $ fix \next -> do
|
||||
who <- readTQueue _tcpConnDemand
|
||||
already <- readTVar _tcpPeerConn <&> HM.member who
|
||||
if not already then pure who else STM.retry
|
||||
if not already then pure who else next
|
||||
|
||||
debug $ "DEMAND:" <+> pretty who
|
||||
|
||||
|
|
|
@ -287,15 +287,13 @@ runMessagingUnix env = do
|
|||
|
||||
sock <- ContT $ bracket openSock closeSock
|
||||
|
||||
sockReady <- newTVarIO False
|
||||
|
||||
void $ ContT $ bracket (createQueues env who) dropQueuesFor
|
||||
|
||||
let attemptConnect = do
|
||||
result <- liftIO $ try $ connect sock $ SockAddrUnix (msgUnixSockPath env)
|
||||
case result of
|
||||
Right _ -> do
|
||||
atomically $ writeTVar sockReady True
|
||||
none
|
||||
|
||||
Left (e :: SomeException) -> do
|
||||
warn $ "MessagingUnix. failed to connect" <+> pretty sa <+> viaShow e
|
||||
|
@ -308,9 +306,6 @@ runMessagingUnix env = do
|
|||
|
||||
forever do
|
||||
|
||||
atomically do
|
||||
readTVar sockReady `orElse` retry
|
||||
|
||||
-- Мы клиент. Шлём кому? **ЕМУ**, на том конце трубы.
|
||||
-- У нас один контрагент, имя сокета (файла) == адрес пира.
|
||||
-- Как в TCP порт сервиса (а отвечает тот с другого порта)
|
||||
|
|
Loading…
Reference in New Issue