@@ -42,6 +42,7 @@ def log_event(message, retries=10, wait=0.1):
4242 req ["timestamp" ] = int (time .time () * 1000 )
4343 return _request (req , retries , wait )
4444
45+
4546async def log_event_async (message , retries = 10 , wait = 0.1 ):
4647 if isinstance (message , bytes ):
4748 message = message .decode ("utf-8" )
@@ -59,7 +60,6 @@ async def log_event_async(message, retries=10, wait=0.1):
5960 req ["message" ] = message
6061 req ["timestamp" ] = int (time .time () * 1000 )
6162 return await _request_async (req , retries , wait )
62-
6363
6464
6565def _connect (retries , wait ):
@@ -87,15 +87,15 @@ async def _connect_async(retries, wait):
8787 addr = "\0 org.globus.cwlogs"
8888 for _ in range (retries + 1 ):
8989 try :
90- reader , writer = asyncio .open_unix_connection (path = addr )
90+ reader , writer = await asyncio .open_unix_connection (path = addr )
9191 except Exception as err :
9292 if writer :
9393 writer .close ()
9494 error = err
9595 else :
9696 return reader , writer
97- time .sleep (wait ):
98-
97+ await asyncio .sleep (wait )
98+ raise CWLoggerConnectionError ( "couldn't connect to cw" , error )
9999
100100
101101def _request (req , retries , wait ):
@@ -117,6 +117,7 @@ def _request(req, retries, wait):
117117 break
118118
119119 d = json .loads (resp [:- 1 ])
120+ sock .close ()
120121 if isinstance (d , dict ):
121122 status = d ["status" ]
122123 if status == "ok" :
@@ -141,6 +142,7 @@ async def _request_async(req, retries, wait):
141142 if not resp .endswith (b"\n " ):
142143 raise Exception ("no data" )
143144 resp = resp .decode ("utf-8" )
145+ writer .close ()
144146
145147 d = json .loads (resp [:- 1 ])
146148 if isinstance (d , dict ):
0 commit comments