Remove non-determinism from Peer caused by using std's HashMap

This commit is contained in:
Antonio Scandurra 2022-04-08 11:27:53 +02:00
parent 717f53e3d2
commit fae9048a2a
3 changed files with 12 additions and 7 deletions

1
Cargo.lock generated
View file

@ -4007,6 +4007,7 @@ dependencies = [
"async-tungstenite", "async-tungstenite",
"base64 0.13.0", "base64 0.13.0",
"clock", "clock",
"collections",
"futures", "futures",
"gpui", "gpui",
"log", "log",

View file

@ -9,9 +9,13 @@ path = "src/rpc.rs"
doctest = false doctest = false
[features] [features]
test-support = ["gpui/test-support"] test-support = ["collections/test-support", "gpui/test-support"]
[dependencies] [dependencies]
clock = { path = "../clock" }
collections = { path = "../collections" }
gpui = { path = "../gpui", optional = true }
util = { path = "../util" }
anyhow = "1.0" anyhow = "1.0"
async-lock = "2.4" async-lock = "2.4"
async-tungstenite = "0.16" async-tungstenite = "0.16"
@ -26,14 +30,12 @@ rsa = "0.4"
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
smol-timeout = "0.6" smol-timeout = "0.6"
zstd = "0.9" zstd = "0.9"
clock = { path = "../clock" }
gpui = { path = "../gpui", optional = true }
util = { path = "../util" }
[build-dependencies] [build-dependencies]
prost-build = "0.8" prost-build = "0.8"
[dev-dependencies] [dev-dependencies]
collections = { path = "../collections", features = ["test-support"] }
gpui = { path = "../gpui", features = ["test-support"] } gpui = { path = "../gpui", features = ["test-support"] }
smol = "1.2.5" smol = "1.2.5"
tempdir = "0.3.7" tempdir = "0.3.7"

View file

@ -1,6 +1,9 @@
use super::proto::{self, AnyTypedEnvelope, EnvelopedMessage, MessageStream, RequestMessage}; use super::{
use super::Connection; proto::{self, AnyTypedEnvelope, EnvelopedMessage, MessageStream, RequestMessage},
Connection,
};
use anyhow::{anyhow, Context, Result}; use anyhow::{anyhow, Context, Result};
use collections::HashMap;
use futures::{channel::oneshot, stream::BoxStream, FutureExt as _, StreamExt}; use futures::{channel::oneshot, stream::BoxStream, FutureExt as _, StreamExt};
use parking_lot::{Mutex, RwLock}; use parking_lot::{Mutex, RwLock};
use postage::{ use postage::{
@ -10,7 +13,6 @@ use postage::{
use smol_timeout::TimeoutExt as _; use smol_timeout::TimeoutExt as _;
use std::sync::atomic::Ordering::SeqCst; use std::sync::atomic::Ordering::SeqCst;
use std::{ use std::{
collections::HashMap,
fmt, fmt,
future::Future, future::Future,
marker::PhantomData, marker::PhantomData,