diff --git a/json_rpc/clients/socketclient.nim b/json_rpc/clients/socketclient.nim index 727cc1b..54b1a7a 100644 --- a/json_rpc/clients/socketclient.nim +++ b/json_rpc/clients/socketclient.nim @@ -63,5 +63,7 @@ proc connect*(client: RpcSocketClient, address: string, port: Port) {.async.} = client.loop = processData(client) method close*(client: RpcSocketClient) {.async.} = - # TODO: Stop the processData loop - await client.transport.closeWait() + await client.loop.cancelAndWait() + if not client.transport.isNil: + client.transport.close() + client.transport = nil diff --git a/json_rpc/clients/websocketclient.nim b/json_rpc/clients/websocketclient.nim index 48fcc18..9bdade3 100644 --- a/json_rpc/clients/websocketclient.nim +++ b/json_rpc/clients/websocketclient.nim @@ -78,5 +78,8 @@ proc connect*(client: RpcWebSocketClient, uri: string, headers: StringTableRef = client.loop = processData(client) method close*(client: RpcWebSocketClient) {.async.} = + await client.loop.cancelAndWait() if not client.transport.isNil: - client.loop.cancel() + client.transport.close() + client.transport = nil +