cleanup on unlock
This commit is contained in:
parent
c172b3c83e
commit
0a0edb76f0
@ -36,7 +36,7 @@ public:
|
|||||||
lock_data(const lock_data &) = delete;
|
lock_data(const lock_data &) = delete;
|
||||||
lock_data(lock_data &&) = delete;
|
lock_data(lock_data &&) = delete;
|
||||||
|
|
||||||
~lock_data() { release(); }
|
~lock_data();
|
||||||
|
|
||||||
auto operator=(const lock_data &) -> lock_data & = delete;
|
auto operator=(const lock_data &) -> lock_data & = delete;
|
||||||
auto operator=(lock_data &&) -> lock_data & = delete;
|
auto operator=(lock_data &&) -> lock_data & = delete;
|
||||||
|
@ -37,6 +37,8 @@ auto create_lock_id(provider_type prov, std::string unique_id) {
|
|||||||
app_config::get_provider_name(prov), unique_id);
|
app_config::get_provider_name(prov), unique_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lock_data::~lock_data() { release(); }
|
||||||
|
|
||||||
lock_data::lock_data(provider_type prov, std::string unique_id)
|
lock_data::lock_data(provider_type prov, std::string unique_id)
|
||||||
: prov_(prov),
|
: prov_(prov),
|
||||||
mutex_id_(create_lock_id(prov, unique_id)),
|
mutex_id_(create_lock_id(prov, unique_id)),
|
||||||
@ -126,6 +128,10 @@ void lock_data::release() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((mutex_state_ == WAIT_OBJECT_0) || (mutex_state_ == WAIT_ABANDONED)) {
|
if ((mutex_state_ == WAIT_OBJECT_0) || (mutex_state_ == WAIT_ABANDONED)) {
|
||||||
|
if (mutex_state_ == WAIT_OBJECT_0) {
|
||||||
|
[[maybe_unused]] auto success{set_mount_state(false, "", -1)};
|
||||||
|
}
|
||||||
|
|
||||||
::ReleaseMutex(mutex_handle_);
|
::ReleaseMutex(mutex_handle_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user