aboutsummaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2020-07-14 22:00:13 +0200
committerRobin Krahl <robin.krahl@ireas.org>2020-07-14 22:00:13 +0200
commit3810761847717676d91900c422d9c8b634f56d77 (patch)
tree0974cefb5662b5bf37b1d27c17ce73e07a126dc1 /src/lib.rs
parenta3dd6afb8c23c8975737d1484e152d530a975c11 (diff)
parent8f72f038cab8e61fb162c12c4bd4cbaa243faa2d (diff)
downloadnitrokey-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.rs13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 92247d7..5b72d63 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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.