| Top |
| void | ags_concurrent_tree_set_parent_locked () |
| gboolean | ags_concurrent_tree_get_parent_locked () |
| pthread_mutex_t * | ags_concurrent_tree_get_lock () |
| pthread_mutex_t * | ags_concurrent_tree_get_parent_lock () |
| gboolean | ags_concurrent_tree_lock_context () |
| void | ags_concurrent_tree_unlock_context () |
| #define | AGS_CONCURRENT_TREE() |
| #define | AGS_CONCURRENT_TREE_GET_INTERFACE() |
| #define | AGS_CONCURRENT_TREE_INTERFACE() |
| #define | AGS_IS_CONCURRENT_TREE() |
| #define | AGS_IS_CONCURRENT_TREE_INTERFACE() |
| GType | ags_concurrent_tree_get_type () |
| #define | AGS_TYPE_CONCURRENT_TREE |
| AgsConcurrentTree | |
| struct | AgsConcurrentTreeInterface |
The AgsConcurrentTree interface provides essential locks to process tree with parallelism.
void ags_concurrent_tree_set_parent_locked (AgsConcurrentTree *concurrent_tree,gboolean parent_locked);
Set context owns parent lock
Since: 1.0.0
gboolean
ags_concurrent_tree_get_parent_locked (AgsConcurrentTree *concurrent_tree);
If context owns parent lock
Since: 1.0.0
pthread_mutex_t *
ags_concurrent_tree_get_lock (AgsConcurrentTree *concurrent_tree);
Get tree node's lock.
Since: 1.0.0
pthread_mutex_t *
ags_concurrent_tree_get_parent_lock (AgsConcurrentTree *concurrent_tree);
Get tree node's parent lock.
Since: 1.0.0
gboolean
ags_concurrent_tree_lock_context (AgsConcurrentTree *concurrent_tree);
Locks the context of concurrent_tree
and blocks until success.
Since: 1.0.0
void
ags_concurrent_tree_unlock_context (AgsConcurrentTree *concurrent_tree);
Unlocks the context of concurrent_tree
.
Since: 1.0.0
#define AGS_CONCURRENT_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_CONCURRENT_TREE, AgsConcurrentTree))
#define AGS_CONCURRENT_TREE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), AGS_TYPE_CONCURRENT_TREE, AgsConcurrentTreeInterface))
#define AGS_CONCURRENT_TREE_INTERFACE(vtable) (G_TYPE_CHECK_CLASS_CAST((vtable), AGS_TYPE_CONCURRENT_TREE, AgsConcurrentTreeInterface))
#define AGS_IS_CONCURRENT_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_CONCURRENT_TREE))
#define AGS_IS_CONCURRENT_TREE_INTERFACE(vtable) (G_TYPE_CHECK_CLASS_TYPE((vtable), AGS_TYPE_CONCURRENT_TREE))
struct AgsConcurrentTreeInterface {
GTypeInterface ginterface;
void (*set_parent_locked)(AgsConcurrentTree *concurrent_tree,
gboolean parent_locked);
gboolean (*get_parent_locked)(AgsConcurrentTree *concurrent_tree);
pthread_mutex_t* (*get_lock)(AgsConcurrentTree *concurrent_tree);
pthread_mutex_t* (*get_parent_lock)(AgsConcurrentTree *concurrent_tree);
};