Struct cpython::GILGuard [] [src]

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

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

Methods

impl GILGuard
[src]

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.

fn python<'p>(&'p self) -> Python<'p>

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

Trait Implementations

impl !Send for GILGuard
[src]

GILGuard is not Send because the GIL must be released by the same thread that acquired it.

impl !Sync for GILGuard
[src]

GILGuard is not Sync because only the thread that acquired the GIL may access the Python interpreter.

impl Drop for GILGuard
[src]

The Drop implementation for GILGuard will release the GIL.

fn drop(&mut self)

A method called when the value goes out of scope. Read more