Rust: use try_borrow where applicable.

This commit is contained in:
whitequark 2016-10-04 03:26:53 +00:00
parent 30e997f045
commit 398b709e25
2 changed files with 7 additions and 8 deletions

View File

@ -1,5 +1,5 @@
#![no_std]
#![feature(libc, borrow_state, const_fn)]
#![feature(libc, borrow_state, const_fn, try_borrow)]
#[macro_use]
extern crate std_artiq as std;

View File

@ -68,17 +68,16 @@ impl ThreadHandle {
}
pub fn terminated(&self) -> bool {
match self.0.borrow_state() {
BorrowState::Unused => self.0.borrow().terminated(),
_ => false // the running thread hasn't terminated
match self.0.try_borrow() {
Ok(thread) => thread.terminated(),
Err(_) => false // the running thread hasn't terminated
}
}
pub fn interrupt(&self) {
// FIXME: use try_borrow() instead once it's available
match self.0.borrow_state() {
BorrowState::Unused => self.0.borrow_mut().interrupt(),
_ => panic!("cannot interrupt the running thread")
match self.0.try_borrow_mut() {
Ok(mut thread) => thread.interrupt(),
Err(_) => panic!("cannot interrupt the running thread")
}
}
}