Skip to main content

Mojo struct

BlockingScopedLock

A scope adapter for BlockingSpinLock.

Aliases

  • LockType = BlockingSpinLock: The type of the lock.

Fields

  • lock (UnsafePointer[BlockingSpinLock, 0, 0, alignof[::AnyType,__mlir_type.!kgen.target]() if triple_is_nvidia_cuda() else 1]): The underlying lock instance.

Implemented traits

AnyType

Methods

__init__

__init__(inout self: Self, lock: UnsafePointer[BlockingSpinLock, 0, 0, alignof[::AnyType,__mlir_type.!kgen.target]() if triple_is_nvidia_cuda() else 1])

Primary constructor.

Args:

  • lock (UnsafePointer[BlockingSpinLock, 0, 0, alignof[::AnyType,__mlir_type.!kgen.target]() if triple_is_nvidia_cuda() else 1]): A pointer to the underlying lock.

__init__(inout self: Self, inout lock: BlockingSpinLock)

Secondary constructor.

Args:

  • lock (BlockingSpinLock): A mutable reference to the underlying lock.

__enter__

__enter__(inout self: Self)

Acquire the lock on entry. This is done by setting the owner of the lock to own address.

__exit__

__exit__(inout self: Self)

Release the lock on exit. Reset the address on the underlying lock.