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); };