Struct cpython::GILGuard

source ·
pub struct GILGuard { /* private fields */ }
Expand description

RAII type that represents the Global Interpreter Lock acquisition.

§Example

use cpython::Python;

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

Implementations§

source§

impl GILGuard

source

pub fn acquire() -> GILGuard

Acquires the global interpreter lock, which allows access to the Python runtime.

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

source

pub fn python(&self) -> Python<'_>

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

source

pub fn check() -> bool

Checks if the current thread holds the GIL.

This method is only available with Python 3.

Trait Implementations§

source§

impl Drop for GILGuard

The Drop implementation for GILGuard will release the GIL.

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.