Use parking_lot::Mutex instead of spin::Mutex
spin is no longer maintained. Fixes #718.
This commit is contained in:
parent
c5ae2dcdb7
commit
4b2f4b3a15
|
@ -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 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<U> for T` where `U: FromPy<T>` is no longer specializable. Control the behavior of this via the implementation of `FromPy`.
|
* The implementation for `IntoPy<U> for T` where `U: FromPy<T>` 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)
|
* `#[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
|
### Added
|
||||||
|
|
||||||
|
|
16
Cargo.toml
16
Cargo.toml
|
@ -19,16 +19,16 @@ travis-ci = { repository = "PyO3/pyo3", branch = "master" }
|
||||||
appveyor = { repository = "fafhrd91/pyo3" }
|
appveyor = { repository = "fafhrd91/pyo3" }
|
||||||
|
|
||||||
[dependencies]
|
[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"
|
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"
|
paste = "0.1.6"
|
||||||
|
pyo3cls = { path = "pyo3cls", version = "=0.8.5" }
|
||||||
|
unindent = "0.1.4"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
assert_approx_eq = "1.1.0"
|
assert_approx_eq = "1.1.0"
|
||||||
|
|
|
@ -6,7 +6,6 @@ use crate::ffi;
|
||||||
use crate::internal_tricks::Unsendable;
|
use crate::internal_tricks::Unsendable;
|
||||||
use crate::types::PyAny;
|
use crate::types::PyAny;
|
||||||
use crate::Python;
|
use crate::Python;
|
||||||
use spin;
|
|
||||||
use std::ptr::NonNull;
|
use std::ptr::NonNull;
|
||||||
use std::{any, sync};
|
use std::{any, sync};
|
||||||
|
|
||||||
|
@ -124,7 +123,7 @@ struct ReleasePool {
|
||||||
borrowed: ArrayList<NonNull<ffi::PyObject>>,
|
borrowed: ArrayList<NonNull<ffi::PyObject>>,
|
||||||
pointers: *mut Vec<NonNull<ffi::PyObject>>,
|
pointers: *mut Vec<NonNull<ffi::PyObject>>,
|
||||||
obj: Vec<Box<dyn any::Any>>,
|
obj: Vec<Box<dyn any::Any>>,
|
||||||
p: spin::Mutex<*mut Vec<NonNull<ffi::PyObject>>>,
|
p: parking_lot::Mutex<*mut Vec<NonNull<ffi::PyObject>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ReleasePool {
|
impl ReleasePool {
|
||||||
|
@ -134,7 +133,7 @@ impl ReleasePool {
|
||||||
borrowed: ArrayList::new(),
|
borrowed: ArrayList::new(),
|
||||||
pointers: Box::into_raw(Box::new(Vec::with_capacity(256))),
|
pointers: Box::into_raw(Box::new(Vec::with_capacity(256))),
|
||||||
obj: Vec::with_capacity(8),
|
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)))),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue