aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_db/src/cancellation.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-01-10 09:20:32 +0000
committerAleksey Kladov <[email protected]>2019-01-10 09:20:32 +0000
commit64455ad701c8bce6e35793042f5e2ec177e12f7e (patch)
tree39bc814aaff25bc5aa6eba5ce02f430811f7285c /crates/ra_db/src/cancellation.rs
parentcf20ecae9f9572d598c3655f1c5dae35a9f4c548 (diff)
use unwinding for cancelation
Diffstat (limited to 'crates/ra_db/src/cancellation.rs')
-rw-r--r--crates/ra_db/src/cancellation.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/crates/ra_db/src/cancellation.rs b/crates/ra_db/src/cancellation.rs
index 8d38eebfb..f7077b992 100644
--- a/crates/ra_db/src/cancellation.rs
+++ b/crates/ra_db/src/cancellation.rs
@@ -27,6 +27,10 @@ impl Canceled {
27 pub(crate) fn new() -> Canceled { 27 pub(crate) fn new() -> Canceled {
28 Canceled { _private: () } 28 Canceled { _private: () }
29 } 29 }
30
31 pub fn throw() -> ! {
32 std::panic::resume_unwind(Box::new(Canceled::new()))
33 }
30} 34}
31 35
32impl std::fmt::Display for Canceled { 36impl std::fmt::Display for Canceled {