| 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 () |
| GType | ags_concurrent_tree_get_type () |
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: 0.7.4
gboolean
ags_concurrent_tree_get_parent_locked (AgsConcurrentTree *concurrent_tree);
If context owns parent lock
Since: 0.7.4
pthread_mutex_t *
ags_concurrent_tree_get_lock (AgsConcurrentTree *concurrent_tree);
Get tree node's lock.
Since: 0.6
pthread_mutex_t *
ags_concurrent_tree_get_parent_lock (AgsConcurrentTree *concurrent_tree);
Get tree node's parent lock.
Since: 0.6
gboolean
ags_concurrent_tree_lock_context (AgsConcurrentTree *concurrent_tree);
Locks the context of concurrent_tree
and blocks until success.
Since: 0.6.0
void
ags_concurrent_tree_unlock_context (AgsConcurrentTree *concurrent_tree);
Unlocks the context of concurrent_tree
.
Since: 0.6.0
struct AgsConcurrentTreeInterface {
GTypeInterface interface;
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);
};