From 79e806f6e9081385291dedfc924b4ac0b060092f Mon Sep 17 00:00:00 2001 From: James Prestwich <10149425+prestwich@users.noreply.github.com> Date: Tue, 2 Mar 2021 14:19:20 -0800 Subject: [PATCH] bug: prevent interleaving websocket ID load/store operations (#217) --- ethers-providers/src/transports/ws.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ethers-providers/src/transports/ws.rs b/ethers-providers/src/transports/ws.rs index a4165bbe..dcfee335 100644 --- a/ethers-providers/src/transports/ws.rs +++ b/ethers-providers/src/transports/ws.rs @@ -112,8 +112,7 @@ impl JsonRpcClient for Ws { method: &str, params: T, ) -> Result { - let next_id = self.id.load(Ordering::SeqCst) + 1; - self.id.store(next_id, Ordering::SeqCst); + let next_id = self.id.fetch_add(1, Ordering::SeqCst); // send the message let (sender, receiver) = oneshot::channel();