diff --git a/CHANGELOG.md b/CHANGELOG.md index 1262cf45..ad86755b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. * The blanket implementations for `FromPyObject` for `&T` and `&mut T` are no longer specializable. Implement `PyTryFrom` for your type to control the behavior of `FromPyObject::extract()` for your types. * The implementation for `IntoPy for T` where `U: FromPy` is no longer specializable. Control the behavior of this via the implementation of `FromPy`. * `#[new]` does not take `PyRawObject` and can reutrn `Self` [#683](https://github.com/PyO3/pyo3/pull/683) +* Use `parking_lot::Mutex` instead of `spin::Mutex` [#734](https://github.com/PyO3/pyo3/pull/734) ### Added diff --git a/Cargo.toml b/Cargo.toml index c41e6017..983ce2d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,16 +19,16 @@ travis-ci = { repository = "PyO3/pyo3", branch = "master" } appveyor = { repository = "fafhrd91/pyo3" } [dependencies] -libc = "0.2.62" -spin = "0.5.1" -num-traits = "0.2.8" -pyo3cls = { path = "pyo3cls", version = "=0.8.5" } -num-complex = { version = ">= 0.2", optional = true } -num-bigint = { version = ">= 0.2", optional = true } -inventory = "0.1.4" indoc = "0.3.4" -unindent = "0.1.4" +inventory = "0.1.4" +libc = "0.2.62" +num-bigint = { version = ">= 0.2", optional = true } +num-complex = { version = ">= 0.2", optional = true } +num-traits = "0.2.8" +parking_lot = { version = "0.10", features = ["nightly"] } paste = "0.1.6" +pyo3cls = { path = "pyo3cls", version = "=0.8.5" } +unindent = "0.1.4" [dev-dependencies] assert_approx_eq = "1.1.0" diff --git a/src/gil.rs b/src/gil.rs index e56b7eb5..bebbde78 100644 --- a/src/gil.rs +++ b/src/gil.rs @@ -6,7 +6,6 @@ use crate::ffi; use crate::internal_tricks::Unsendable; use crate::types::PyAny; use crate::Python; -use spin; use std::ptr::NonNull; use std::{any, sync}; @@ -124,7 +123,7 @@ struct ReleasePool { borrowed: ArrayList>, pointers: *mut Vec>, obj: Vec>, - p: spin::Mutex<*mut Vec>>, + p: parking_lot::Mutex<*mut Vec>>, } impl ReleasePool { @@ -134,7 +133,7 @@ impl ReleasePool { borrowed: ArrayList::new(), pointers: Box::into_raw(Box::new(Vec::with_capacity(256))), obj: Vec::with_capacity(8), - p: spin::Mutex::new(Box::into_raw(Box::new(Vec::with_capacity(256)))), + p: parking_lot::Mutex::new(Box::into_raw(Box::new(Vec::with_capacity(256)))), } }