Allows the application to replace the standard method that
GDK uses to protect its data structures. Normally, GDK
creates a single glib.Mutex that is locked by Threads.enter,
and released by Threads.leave; using this function an
application provides, instead, a function enter_fn that is
called by Threads.enter and a function leave_fn that is
called by Threads.leave.
The functions must provide at least same locking functionality
as the default implementation, but can also do extra application
specific processing.
As an example, consider an application that has its own recursive
lock that when held, holds the GTK+ lock as well. When GTK+ unlocks
the GTK+ lock when entering a recursive main loop, the application
must temporarily release its lock as well.
Most threaded GTK+ apps won’t need to use this method.
This method must be called before Threads.init, and cannot
be called multiple times.
Allows the application to replace the standard method that GDK uses to protect its data structures. Normally, GDK creates a single glib.Mutex that is locked by Threads.enter, and released by Threads.leave; using this function an application provides, instead, a function enter_fn that is called by Threads.enter and a function leave_fn that is called by Threads.leave.
The functions must provide at least same locking functionality as the default implementation, but can also do extra application specific processing.
As an example, consider an application that has its own recursive lock that when held, holds the GTK+ lock as well. When GTK+ unlocks the GTK+ lock when entering a recursive main loop, the application must temporarily release its lock as well.
Most threaded GTK+ apps won’t need to use this method.
This method must be called before Threads.init, and cannot be called multiple times.