Package: cairo

Function cairo:device-acquire

Lambda List

cairo:device-acquire (device)

Arguments

device -- a cairo:device-t instance

Return Value

The cairo:status-t value that is :success on success or an error code if the device is in an error state and could not be acquired.

Details

Acquires the device for the current thread. This function will block until no other thread has acquired the device. After a successful call to the cairo:device-acquire function, a matching call to the cairo:device-release function is required.

If the return value is :sucess, you successfully acquired the device. From now on your thread owns the device and no other thread will be able to acquire it until a matching call to the cairo:device-release function. It is allowed to recursively acquire the device multiple times from the same thread.

Notes

You must never acquire two different devices at the same time unless this is explicitly allowed. Otherwise the possibility of deadlocks exist.

As various Cairo functions can acquire devices when called, these functions may also cause deadlocks when you call them with an acquired device. So you must not have a device acquired when calling them. These functions are marked in the documentation.
 

See also

2025-1-29