diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2020-07-14 22:00:13 +0200 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2020-07-14 22:00:13 +0200 |
commit | 3810761847717676d91900c422d9c8b634f56d77 (patch) | |
tree | 0974cefb5662b5bf37b1d27c17ce73e07a126dc1 /src/lib.rs | |
parent | a3dd6afb8c23c8975737d1484e152d530a975c11 (diff) | |
parent | 8f72f038cab8e61fb162c12c4bd4cbaa243faa2d (diff) | |
download | nitrokey-rs-3810761847717676d91900c422d9c8b634f56d77.tar.gz nitrokey-rs-3810761847717676d91900c422d9c8b634f56d77.tar.bz2 |
Merge branch 'release-0.7.0'
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 13 |
1 files changed, 4 insertions, 9 deletions
@@ -133,8 +133,6 @@ use std::marker; use std::ptr::NonNull; use std::sync; -use nitrokey_sys; - pub use crate::auth::{Admin, Authenticate, User}; pub use crate::config::Config; pub use crate::device::{ @@ -472,13 +470,10 @@ pub fn take() -> Result<sync::MutexGuard<'static, Manager>, Error> { /// [`ConcurrentAccessError`]: struct.Error.html#variant.ConcurrentAccessError /// [`Manager`]: struct.Manager.html pub fn force_take() -> Result<sync::MutexGuard<'static, Manager>, Error> { - match take() { - Ok(guard) => Ok(guard), - Err(err) => match err { - Error::PoisonError(err) => Ok(err.into_inner()), - err => Err(err), - }, - } + MANAGER.try_lock().or_else(|err| match err { + sync::TryLockError::Poisoned(err) => Ok(err.into_inner()), + sync::TryLockError::WouldBlock => Err(Error::ConcurrentAccessError), + }) } /// List all connected Nitrokey devices. |