aboutsummaryrefslogtreecommitdiff
path: root/src/api/wait.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/wait.rs')
-rw-r--r--src/api/wait.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/api/wait.rs b/src/api/wait.rs
index 17ffb992..d556fa96 100644
--- a/src/api/wait.rs
+++ b/src/api/wait.rs
@@ -153,8 +153,16 @@ pub(super) fn wait_for_event(
return Ok(None);
}
- if let Some(event) = active.poll(api_tx, event_hub) {
- return Ok(Some(wait_matched_response(&request_id, event)));
+ match active.poll_for_wait(api_tx, event_hub) {
+ Ok(Some(event)) => return Ok(Some(wait_matched_response(&request_id, event))),
+ Ok(None) => {}
+ Err(mut response) if response.error.code == "pane_not_found" => {
+ response.id = request_id;
+ return serde_json::to_string(&response)
+ .map(Some)
+ .map_err(std::io::Error::other);
+ }
+ Err(_) => {}
}
if deadline.is_some_and(|deadline| std::time::Instant::now() >= deadline) {