html terminal
Diffstat (limited to 'src/bot/mod.rs')
-rw-r--r--src/bot/mod.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/bot/mod.rs b/src/bot/mod.rs
index eb43724..4289a4b 100644
--- a/src/bot/mod.rs
+++ b/src/bot/mod.rs
@@ -16,7 +16,10 @@ use serenity::http::Http;
use serenity::prelude::*;
use std::fs::read_to_string;
use std::str::FromStr;
-use std::sync::{Arc, Mutex, OnceLock};
+use std::sync::{
+ atomic::{AtomicU8, Ordering},
+ Arc, OnceLock,
+};
use tokio::sync::broadcast;
#[derive(Debug)]
@@ -25,7 +28,7 @@ pub struct Data {
vote_data: voting::Votes,
}
-static SKIPPING: OnceLock<(Arc<Mutex<u8>>, broadcast::Sender<String>)> = OnceLock::new();
+static SKIPPING: OnceLock<(Arc<AtomicU8>, broadcast::Sender<String>)> = OnceLock::new();
#[macro_export]
macro_rules! send {
@@ -173,9 +176,9 @@ macro_rules! return_next {
async fn get_nextblock() -> String {
let (skip_count, skip_send) = SKIPPING.get().unwrap();
- {
- *skip_count.lock().unwrap() += 1;
- }
+
+ skip_count.fetch_add(1, Ordering::Relaxed);
+
skip_send
.subscribe()
.recv()