diff --git a/Cargo.lock b/Cargo.lock index 3f17e1a2b..725e2ad50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1101,8 +1101,7 @@ checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" [[package]] name = "lock_api" version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" +source = "git+https://github.com/coolreader18/parking_lot?branch=remutex-is_owned#391cf555e94c05450cea2e88b42c95c6631ab163" dependencies = [ "scopeguard", ] diff --git a/Cargo.toml b/Cargo.toml index f175d0b8d..39113799a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,4 +69,4 @@ opt-level = 3 [patch.crates-io] # REDOX START, Uncommment when you want to compile/check with redoxer # REDOX END - +lock_api = { git = "https://github.com/coolreader18/parking_lot", branch = "remutex-is_owned" } diff --git a/vm/src/stdlib/thread.rs b/vm/src/stdlib/thread.rs index e611b963c..58da8e0d2 100644 --- a/vm/src/stdlib/thread.rs +++ b/vm/src/stdlib/thread.rs @@ -191,6 +191,11 @@ impl PyRLock { Ok(()) } + #[pymethod] + fn _is_owned(&self) -> bool { + self.mu.is_owned_by_current_thread() + } + #[pymethod(magic)] fn exit(&self, _args: FuncArgs, vm: &VirtualMachine) -> PyResult<()> { self.release(vm)