2023-11-21 11:41:43 +00:00
|
|
|
error[E0277]: `*mut pyo3::Python<'static>` cannot be shared between threads safely
|
2022-11-04 04:29:23 +00:00
|
|
|
--> tests/ui/not_send2.rs:8:26
|
|
|
|
|
|
|
|
|
8 | py.allow_threads(|| {
|
|
|
|
| ____________-------------_^
|
|
|
|
| | |
|
|
|
|
| | required by a bound introduced by this call
|
|
|
|
9 | | println!("{:?}", string);
|
|
|
|
10 | | });
|
2023-11-21 11:41:43 +00:00
|
|
|
| |_________^ `*mut pyo3::Python<'static>` cannot be shared between threads safely
|
2022-11-04 04:29:23 +00:00
|
|
|
|
|
2023-11-21 11:41:43 +00:00
|
|
|
= help: within `pyo3::Bound<'_, PyString>`, the trait `Sync` is not implemented for `*mut pyo3::Python<'static>`
|
|
|
|
note: required because it appears within the type `PhantomData<*mut Python<'static>>`
|
|
|
|
--> $RUST/core/src/marker.rs
|
2023-07-14 09:28:17 +00:00
|
|
|
|
|
2023-11-21 11:41:43 +00:00
|
|
|
| pub struct PhantomData<T: ?Sized>;
|
|
|
|
| ^^^^^^^^^^^
|
|
|
|
note: required because it appears within the type `NotSend`
|
|
|
|
--> src/impl_/not_send.rs
|
|
|
|
|
|
|
|
|
| pub(crate) struct NotSend(PhantomData<*mut Python<'static>>);
|
|
|
|
| ^^^^^^^
|
|
|
|
= note: required because it appears within the type `(&GILGuard, NotSend)`
|
|
|
|
note: required because it appears within the type `PhantomData<(&GILGuard, NotSend)>`
|
|
|
|
--> $RUST/core/src/marker.rs
|
|
|
|
|
|
|
|
|
| pub struct PhantomData<T: ?Sized>;
|
|
|
|
| ^^^^^^^^^^^
|
|
|
|
note: required because it appears within the type `Python<'_>`
|
|
|
|
--> src/marker.rs
|
|
|
|
|
|
|
|
|
| pub struct Python<'py>(PhantomData<(&'py GILGuard, NotSend)>);
|
|
|
|
| ^^^^^^
|
|
|
|
note: required because it appears within the type `Bound<'_, PyString>`
|
|
|
|
--> src/instance.rs
|
2023-07-14 09:28:17 +00:00
|
|
|
|
|
2023-11-21 11:41:43 +00:00
|
|
|
| pub struct Bound<'py, T>(Python<'py>, ManuallyDrop<Py<T>>);
|
|
|
|
| ^^^^^
|
|
|
|
= note: required for `&pyo3::Bound<'_, PyString>` to implement `Send`
|
2022-08-12 06:26:29 +00:00
|
|
|
note: required because it's used within this closure
|
2022-11-04 04:29:23 +00:00
|
|
|
--> tests/ui/not_send2.rs:8:26
|
|
|
|
|
|
|
|
|
8 | py.allow_threads(|| {
|
|
|
|
| ^^
|
2023-11-16 16:06:01 +00:00
|
|
|
= note: required for `{closure@$DIR/tests/ui/not_send2.rs:8:26: 8:28}` to implement `Ungil`
|
2022-02-08 15:56:19 +00:00
|
|
|
note: required by a bound in `pyo3::Python::<'py>::allow_threads`
|
2022-11-04 04:29:23 +00:00
|
|
|
--> src/marker.rs
|
|
|
|
|
|
2023-07-14 09:28:17 +00:00
|
|
|
| pub fn allow_threads<T, F>(self, f: F) -> T
|
|
|
|
| ------------- required by a bound in this associated function
|
|
|
|
| where
|
2022-11-04 04:29:23 +00:00
|
|
|
| F: Ungil + FnOnce() -> T,
|
2023-03-09 23:41:26 +00:00
|
|
|
| ^^^^^ required by this bound in `Python::<'py>::allow_threads`
|