[][src]Struct pyo3::GILGuard

#[must_use]pub struct GILGuard { /* fields omitted */ }

RAII type that represents the Global Interpreter Lock acquisition.

Example

use pyo3::Python;

{
    let gil_guard = Python::acquire_gil();
    let py = gil_guard.python();
} // GIL is released when gil_guard is dropped

Implementations

impl GILGuard[src]

pub fn acquire() -> GILGuard[src]

Acquires the global interpreter lock, which allows access to the Python runtime. This is safe to call multiple times without causing a deadlock.

If the Python runtime is not already initialized, this function will initialize it. See prepare_freethreaded_python() for details.

If PyO3 does not yet have a GILPool for tracking owned PyObject references, then this new GILGuard will also contain a GILPool.

pub fn python(&self) -> Python[src]

Retrieves the marker type that proves that the GIL was acquired.

Trait Implementations

impl Drop for GILGuard[src]

The Drop implementation for GILGuard will release the GIL.

Auto Trait Implementations

impl !RefUnwindSafe for GILGuard

impl !Send for GILGuard

impl !Sync for GILGuard

impl Unpin for GILGuard

impl UnwindSafe for GILGuard

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> FromPy<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> IntoPy<U> for T where
    U: FromPy<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.