Skip to content

Commit 45a6627

Browse files
committed
Switched to rwlock from mutex
1 parent df9c5dd commit 45a6627

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/main.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
use std::collections::HashMap;
1212
use std::pin::Pin;
13-
use std::sync::Mutex;
13+
use std::sync::RwLock;
1414
use std::task::{Context, Poll};
1515
use std::time::Duration;
1616

@@ -65,9 +65,9 @@ async fn index() -> impl Responder {
6565
}
6666

6767
#[get("/events/{channel}")]
68-
async fn new_client(channel: Path<String>, broadcasters: Data<Mutex<BroadcasterMap>>) -> impl Responder {
68+
async fn new_client(channel: Path<String>, broadcasters: Data<RwLock<BroadcasterMap>>) -> impl Responder {
6969

70-
let rx = broadcasters.lock().unwrap().new_client(&channel.into_inner());
70+
let rx = broadcasters.write().unwrap().new_client(&channel.into_inner());
7171

7272
HttpResponse::Ok()
7373
.header("content-type", "text/event-stream")
@@ -78,13 +78,13 @@ async fn new_client(channel: Path<String>, broadcasters: Data<Mutex<BroadcasterM
7878
#[post("/broadcast")]
7979
async fn broadcast(
8080
data: web::Json<SpotifyData>,
81-
broadcasters: Data<Mutex<BroadcasterMap>>,
81+
broadcasters: Data<RwLock<BroadcasterMap>>,
8282
) -> impl Responder {
8383

8484
let channel = &data.channel;
8585
let msg = &data.msg;
8686

87-
broadcasters.lock().unwrap().broadcast(&channel, &msg);
87+
broadcasters.read().unwrap().broadcast(&channel, &msg);
8888
HttpResponse::Ok()
8989
.body("idk if it sent or not")
9090
}
@@ -126,8 +126,8 @@ impl BroadcasterMap {
126126
}
127127
}
128128

129-
fn create() -> Data<Mutex<Self>> {
130-
Data::new(Mutex::new(BroadcasterMap::new()))
129+
fn create() -> Data<RwLock<Self>> {
130+
Data::new(RwLock::new(BroadcasterMap::new()))
131131
}
132132

133133
fn spawn_ping(tx: Sender<Bytes>) {

0 commit comments

Comments
 (0)