| Top |
| #define | AGS_THREAD_HERTZ_JIFFIE |
| #define | AGS_THREAD_YIELD_JIFFIE |
| #define | AGS_THREAD_DEFAULT_JIFFIE |
| #define | AGS_THREAD_DEFAULT_MAX_PRECISION |
| #define | AGS_THREAD_MAX_PRECISION |
| #define | AGS_THREAD_DEFAULT_ATTACK |
| #define | AGS_THREAD_TOLERANCE |
| enum | AgsThreadFlags |
| enum | AgsThreadStatusFlags |
| enum | AgsThreadSyncTicFlags |
| #define | AGS_TYPE_THREAD |
| struct | AgsThread |
| struct | AgsThreadClass |
GObject ╰── AgsThread ├── AgsWorkerThread ├── AgsGenericMainLoop ╰── AgsReturnableThread
The AgsThread base class. It supports organizing them within a tree, perform syncing and frequencies.
#define AGS_THREAD_GET_OBJ_MUTEX(obj) (&(((AgsThread *) obj)->obj_mutex))
#define AGS_THREAD_GET_WAIT_MUTEX(obj) (&(((AgsThread *) obj)->wait_mutex))
#define AGS_THREAD_GET_WAIT_COND(obj) (&(((AgsThread *) obj)->wait_cond))
#define AGS_THREAD_GET_TIC_MUTEX(obj) (&(((AgsThread *) obj)->tic_mutex))
#define AGS_THREAD_GET_START_MUTEX(obj) (&(((AgsThread *) obj)->start_mutex))
#define AGS_THREAD_GET_START_COND(obj) (&(((AgsThread *) obj)->start_cond))
gboolean ags_thread_global_get_use_sync_counter ();
Get global config value use sync counter.
Since: 3.0.0
gboolean ags_thread_test_flags (AgsThread *thread,guint flags);
Test flags
to be set on thread
.
Since: 3.0.0
void ags_thread_set_flags (AgsThread *thread,guint flags);
Set flags.
Since: 3.0.0
void ags_thread_unset_flags (AgsThread *thread,guint flags);
Unset flags.
Since: 3.0.0
gboolean ags_thread_test_status_flags (AgsThread *thread,guint status_flags);
Test status_flags
to be set on thread
.
Since: 3.0.0
void ags_thread_set_status_flags (AgsThread *thread,guint status_flags);
Set status flags.
Since: 3.0.0
void ags_thread_unset_status_flags (AgsThread *thread,guint status_flags);
Unset status flags.
Since: 3.0.0
void
ags_thread_clear_status_flags (AgsThread *thread);
Clear status flags.
Since: 3.0.0
gboolean ags_thread_test_sync_tic_flags (AgsThread *thread,guint sync_tic_flags);
Test sync_tic_flags
to be set on thread
.
Since: 3.0.0
void ags_thread_set_sync_tic_flags (AgsThread *thread,guint sync_tic_flags);
Set sync-tic flags.
Since: 3.0.0
void ags_thread_unset_sync_tic_flags (AgsThread *thread,guint sync_tic_flags);
Unset sync-tic flags.
Since: 3.0.0
void
ags_thread_clear_sync_tic_flags (AgsThread *thread);
Clear sync-tic flags.
Since: 3.0.0
void ags_thread_set_current_sync_tic (AgsThread *thread,guint current_sync_tic);
Set current sync-tic.
Since: 3.0.0
guint
ags_thread_get_current_sync_tic (AgsThread *thread);
Get current sync-tic.
Since: 3.0.0
void ags_thread_set_delay (AgsThread *thread,gdouble delay);
Set delay.
Since: 3.0.0
void ags_thread_set_frequency (AgsThread *thread,gdouble frequency);
Set frequency.
Since: 3.0.0
gdouble
ags_thread_get_frequency (AgsThread *thread);
Get frequency.
Since: 3.0.0
void ags_thread_set_max_precision (AgsThread *thread,gdouble max_precision);
Set max-precision.
Since: 3.0.0
gdouble
ags_thread_get_max_precision (AgsThread *thread);
Get max-precision.
Since: 3.0.0
AgsThread * ags_thread_find_type (AgsThread *thread,GType gtype);
Find gtype
as descendant of thread
. If its a descendant thread,
the ref-count is increased.
Since: 3.0.0
AgsThread *
ags_thread_parent (AgsThread *thread);
Get parent thread.
Since: 3.0.0
AgsThread *
ags_thread_children (AgsThread *thread);
Get children thread.
Since: 3.0.0
AgsThread *
ags_thread_get_toplevel (AgsThread *thread);
Retrieve toplevel thread.
Since: 3.0.0
AgsThread *
ags_thread_first (AgsThread *thread);
Retrieve first sibling.
Since: 3.0.0
AgsThread *
ags_thread_last (AgsThread *thread);
Retrieve last sibling.
Since: 3.0.0
void
ags_thread_lock (AgsThread *thread);
Locks the threads own mutex and sets the appropriate flag.
Since: 3.0.0
gboolean
ags_thread_trylock (AgsThread *thread);
Locks the threads own mutex if available and sets the
appropriate flag and returning TRUE. Otherwise return FALSE
without lock.
Since: 3.0.0
void
ags_thread_unlock (AgsThread *thread);
Unlocks the threads own mutex and unsets the appropriate flag.
Since: 3.0.0
void ags_thread_remove_child (AgsThread *thread,AgsThread *child);
Remove child of thread.
Since: 3.0.0
void ags_thread_add_child (AgsThread *thread,AgsThread *child);
Add child to thread.
Since: 3.0.0
void ags_thread_add_child_extended (AgsThread *thread,AgsThread *child,gboolean no_start,gboolean no_wait);
Add child to thread.
thread |
the AgsThread |
|
child |
the child to remove |
|
no_start |
don't start thread |
|
no_wait |
don't wait until started |
Since: 3.0.0
gboolean ags_thread_is_current_ready (AgsThread *current,guint current_sync_tic);
gboolean ags_thread_is_tree_ready_recursive (AgsThread *thread,guint current_sync_tic);
void ags_thread_prepare_current_sync (AgsThread *current,guint current_sync_tic);
void ags_thread_prepare_tree_sync_recursive (AgsThread *thread,guint current_sync_tic);
void ags_thread_set_current_sync (AgsThread *current,guint current_sync_tic);
void ags_thread_set_tree_sync_recursive (AgsThread *thread,guint current_sync_tic);
void ags_thread_add_start_queue (AgsThread *thread,AgsThread *child);
Add child
to thread
's start queue.
Since: 3.0.0
void ags_thread_add_start_queue_all (AgsThread *thread,GList *child);
Add child
to thread
's start queue.
Since: 3.0.0
void
ags_thread_run (AgsThread *thread);
Only for internal use of ags_thread_loop but you may want to set the your very own class function namely your thread's routine.
Since: 3.0.0
void
ags_thread_stop (AgsThread *thread);
Stop the threads loop by unsetting AGS_THREAD_STATUS_RUNNING flag.
Since: 3.0.0
#define AGS_IS_THREAD_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), AGS_TYPE_THREAD))
#define AGS_THREAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_THREAD, AgsThread))
#define AGS_THREAD_CLASS(class) (G_TYPE_CHECK_CLASS_CAST(class, AGS_TYPE_THREAD, AgsThreadClass))
#define AGS_THREAD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS(obj, AGS_TYPE_THREAD, AgsThreadClass))
Enum values to control the behavior or indicate internal state of AgsThread by enable/disable as flags.
|
the thread was added to registry, see |
||
|
the thread was connected by |
||
|
call |
||
|
do sync immediately |
||
|
intermediate pre sync to parent thread |
||
|
intermediate post sync to parent thread |
||
|
sync frequency as starting thread |
||
|
mark thread synced |
||
|
time accounting causes to track time |
Enum values to control the behavior or indicate internal state of AgsThread by enable/disable as status flags.
|
realtime setup was performed |
||
|
initial sync indicates the thread wasn't synced before |
||
|
the first call to |
||
|
the thread is not synced |
||
|
the thread start is waiting |
||
|
the thread start is done |
||
|
the thread is ready |
||
|
the thread is waiting |
||
|
the thread is running |
||
|
the thread is locked |
||
|
the thread is busy |
||
|
the thread joined the tic based system, it is synced |
||
|
the frequency was synced |
Enum values to control the behavior or indicate internal state of AgsThread by enable/disable as sync tic flags.
|
wait tree to be synced |
||
|
done tree to be synced |
||
|
wait tree to be synced |
||
|
done tree to be synced |
||
|
wait tree to be synced |
||
|
done tree to be synced |
||
|
wait tree to be synced |
||
|
done tree to be synced |
||
|
wait tree to be synced |
||
|
done tree to be synced |
||
|
wait tree to be synced |
||
|
done tree to be synced |
||
|
wait tree to be synced |
||
|
done tree to be synced |
||
|
wait tree to be synced |
||
|
done tree to be synced |
||
|
wait tree to be synced |
||
|
done tree to be synced |
“delay” property“delay” gdouble
The delay until next tic.
Owner: AgsThread
Flags: Read / Write
Allowed values: [1,1000]
Default value: 1
Since: 3.0.0
“frequency” property“frequency” gdouble
The frequency to run at in Hz.
Owner: AgsThread
Flags: Read / Write
Allowed values: [0.01,1000]
Default value: 250
Since: 3.0.0
“max-precision” property“max-precision” gdouble
The max-frequency to run at in Hz.
Owner: AgsThread
Flags: Read / Write
Allowed values: [0.01,1000]
Default value: 1000
Since: 3.0.0
“clock” signalguint user_function (AgsThread *thread, gpointer user_data)
The ::clock() signal is invoked every thread tic.
Flags: Run Last
Since: 3.0.0
“run” signalvoid user_function (AgsThread *thread, gpointer user_data)
The ::run() signal is invoked during run loop.
Flags: Run Last
Since: 3.0.0
“start” signalvoid user_function (AgsThread *thread, gpointer user_data)
The ::start() signal is invoked as thread started.
Flags: Run Last
Since: 3.0.0