Add labels to plugin event subscribers

This commit is contained in:
Gregory Schier
2024-10-18 10:46:30 -07:00
parent 2ecd86da78
commit 741ccbe741
3 changed files with 5 additions and 5 deletions

View File

@@ -442,7 +442,6 @@ pub async fn send_http_request<R: Runtime>(
} }
// Write body to FS // Write body to FS
println!("BODYPATH {body_path:?}");
let mut f = File::options() let mut f = File::options()
.create(true) .create(true)
.truncate(true) .truncate(true)

View File

@@ -1969,7 +1969,7 @@ fn monitor_plugin_events<R: Runtime>(app_handle: &AppHandle<R>) {
let app_handle = app_handle.clone(); let app_handle = app_handle.clone();
tauri::async_runtime::spawn(async move { tauri::async_runtime::spawn(async move {
let plugin_manager: State<'_, PluginManager> = app_handle.state(); let plugin_manager: State<'_, PluginManager> = app_handle.state();
let (rx_id, mut rx) = plugin_manager.subscribe().await; let (rx_id, mut rx) = plugin_manager.subscribe("app").await;
while let Some(event) = rx.recv().await { while let Some(event) = rx.recv().await {
let app_handle = app_handle.clone(); let app_handle = app_handle.clone();

View File

@@ -273,9 +273,9 @@ impl PluginManager {
Ok(()) Ok(())
} }
pub async fn subscribe(&self) -> (String, mpsc::Receiver<InternalEvent>) { pub async fn subscribe(&self, label: &str) -> (String, mpsc::Receiver<InternalEvent>) {
let (tx, rx) = mpsc::channel(128); let (tx, rx) = mpsc::channel(128);
let rx_id = generate_id(); let rx_id = format!("{label}_{}", generate_id());
self.subscribers.lock().await.insert(rx_id.clone(), tx); self.subscribers.lock().await.insert(rx_id.clone(), tx);
(rx_id, rx) (rx_id, rx)
} }
@@ -362,7 +362,8 @@ impl PluginManager {
payload: &InternalEventPayload, payload: &InternalEventPayload,
plugins: Vec<PluginHandle>, plugins: Vec<PluginHandle>,
) -> Result<Vec<InternalEvent>> { ) -> Result<Vec<InternalEvent>> {
let (rx_id, mut rx) = self.subscribe().await; let label = format!("wait[{}]", plugins.len());
let (rx_id, mut rx) = self.subscribe(label.as_str()).await;
// 1. Build the events with IDs and everything // 1. Build the events with IDs and everything
let events_to_send = plugins let events_to_send = plugins