From 242d3d849dfe3c7ca6d7be3b8c6f817da021cdbd Mon Sep 17 00:00:00 2001 From: voidlizard Date: Thu, 13 Mar 2025 19:30:09 +0300 Subject: [PATCH] wip, tracking busyloop --- hbs2-core/lib/HBS2/Net/Messaging/Unix.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hbs2-core/lib/HBS2/Net/Messaging/Unix.hs b/hbs2-core/lib/HBS2/Net/Messaging/Unix.hs index e4c6d2f3..7ce1e97c 100644 --- a/hbs2-core/lib/HBS2/Net/Messaging/Unix.hs +++ b/hbs2-core/lib/HBS2/Net/Messaging/Unix.hs @@ -287,13 +287,15 @@ 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 - none + atomically $ writeTVar sockReady True Left (e :: SomeException) -> do warn $ "MessagingUnix. failed to connect" <+> pretty sa <+> viaShow e @@ -306,6 +308,9 @@ runMessagingUnix env = do forever do + atomically do + readTVar sockReady `orElse` retry + -- Мы клиент. Шлём кому? **ЕМУ**, на том конце трубы. -- У нас один контрагент, имя сокета (файла) == адрес пира. -- Как в TCP порт сервиса (а отвечает тот с другого порта)