mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
refactor: remove static mut usage
This commit is contained in:
parent
f274848dcb
commit
86cf815ac0
1 changed files with 5 additions and 6 deletions
|
|
@ -3,11 +3,12 @@ use std::{collections::BTreeMap, ffi::OsString, path::PathBuf};
|
|||
use anyhow::Result;
|
||||
use config::{keymap::{Control, KeymapLayer}, open::Opener};
|
||||
use crossterm::event::KeyEvent;
|
||||
use once_cell::sync::OnceCell;
|
||||
use tokio::sync::{mpsc::UnboundedSender, oneshot};
|
||||
|
||||
use super::{files::{File, FilesOp}, input::InputOpt, manager::PreviewData, select::SelectOpt};
|
||||
|
||||
static mut TX: Option<UnboundedSender<Event>> = None;
|
||||
static TX: OnceCell<UnboundedSender<Event>> = OnceCell::new();
|
||||
|
||||
pub enum Event {
|
||||
Quit,
|
||||
|
|
@ -39,19 +40,17 @@ pub enum Event {
|
|||
impl Event {
|
||||
#[inline]
|
||||
pub fn init(tx: UnboundedSender<Event>) {
|
||||
unsafe {
|
||||
TX.replace(tx);
|
||||
}
|
||||
TX.set(tx).unwrap();
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn emit(self) {
|
||||
let tx = unsafe { TX.as_ref().unwrap() };
|
||||
let tx = TX.get().unwrap();
|
||||
tx.send(self).ok();
|
||||
}
|
||||
|
||||
pub async fn wait<T>(self, rx: oneshot::Receiver<T>) -> T {
|
||||
let tx = unsafe { TX.as_ref().unwrap() };
|
||||
let tx = TX.get().unwrap();
|
||||
tx.send(self).ok();
|
||||
rx.await.unwrap()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue