Top |
#define | AGS_THREAD_RESUME_SIG |
#define | AGS_THREAD_SUSPEND_SIG |
#define | AGS_RT_PRIORITY |
#define | AGS_THREAD_HERTZ_JIFFIE |
#define | AGS_THREAD_DEFAULT_JIFFIE |
#define | AGS_THREAD_MAX_PRECISION |
#define | AGS_THREAD_DEFAULT_ATTACK |
enum | AgsThreadFlags |
enum | AgsThreadSyncFlags |
GObject ╰── AgsThread ├── AgsAudioLoop ├── AgsAudioThread ├── AgsAutosaveThread ├── AgsChannelThread ├── AgsExportThread ├── AgsGenericMainLoop ├── AgsGuiThread ├── AgsIteratorThread ├── AgsRecordThread ├── AgsRecyclingThread ├── AgsReturnableThread ├── AgsSequencerThread ├── AgsSimpleAutosaveThread ├── AgsSingleThread ├── AgsSoundcardThread ├── AgsTaskThread ╰── AgsTimestampThread
The AgsThread base class. It supports organizing them within a tree, perform syncing and frequencies.
void ags_thread_set_sync (AgsThread *thread
,guint tic
);
Unsets AGS_THREAD_WAIT_0, AGS_THREAD_WAIT_1 or AGS_THREAD_WAIT_2. Additionaly the thread is woken up by this function if waiting.
Since: 0.4.0
void ags_thread_set_sync_all (AgsThread *thread
,guint tic
);
Calls ags_thread_set_sync()
on all threads.
Since: 0.4.0
void
ags_thread_lock (AgsThread *thread
);
Locks the threads own mutex and sets the appropriate flag.
Since: 0.4.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: 0.4.0
void
ags_thread_unlock (AgsThread *thread
);
Unlocks the threads own mutex and unsets the appropriate flag.
Since: 0.4.0
AgsThread *
ags_thread_get_toplevel (AgsThread *thread
);
Retrieve toplevel thread.
Since: 0.4.0
AgsThread *
ags_thread_first (AgsThread *thread
);
Retrieve first sibling.
Since: 0.4.0
AgsThread *
ags_thread_last (AgsThread *thread
);
Retrieve last sibling.
Since: 0.4.0
void ags_thread_remove_child (AgsThread *thread
,AgsThread *child
);
Remove child of thread.
Since: 0.4.0
void ags_thread_add_child (AgsThread *thread
,AgsThread *child
);
Add child to thread.
Since: 0.4.0
void ags_thread_add_child_extended (AgsThread *thread
,AgsThread *child
,gboolean no_start
,gboolean no_wait
);
Add child to thread.
thread |
an AgsThread |
|
child |
the child to remove |
|
no_start |
don't start thread |
|
no_wait |
don't wait until started |
Since: 0.4.2
gboolean ags_thread_parental_is_locked (AgsThread *thread
,AgsThread *parent
);
Check the AGS_THREAD_LOCKED flag in parental levels.
Since: 0.4.0
gboolean
ags_thread_sibling_is_locked (AgsThread *thread
);
Check the AGS_THREAD_LOCKED flag within sibling.
Since: 0.4.0
gboolean
ags_thread_children_is_locked (AgsThread *thread
);
Check the AGS_THREAD_LOCKED flag within children.
Since: 0.4.0
gboolean ags_thread_is_current_ready (AgsThread *current
,guint tic
);
AgsThread * ags_thread_next_parent_locked (AgsThread *thread
,AgsThread *parent
);
Retrieve next locked thread above thread
.
Since: 0.4.0
AgsThread *
ags_thread_next_sibling_locked (AgsThread *thread
);
Retrieve next locked thread neighbooring thread
Since: 0.4.0
AgsThread *
ags_thread_next_children_locked (AgsThread *thread
);
Retrieve next locked thread following thread
Since: 0.4.0
void ags_thread_lock_parent (AgsThread *thread
,AgsThread *parent
);
Lock parent tree structure.
Since: 0.4.0
void
ags_thread_lock_sibling (AgsThread *thread
);
Lock sibling tree structure.
Since: 0.4.0
void
ags_thread_lock_children (AgsThread *thread
);
Lock child tree structure.
Since: 0.4.0
void ags_thread_unlock_parent (AgsThread *thread
,AgsThread *parent
);
Unlock parent tree structure.
Since: 0.4.0
void
ags_thread_unlock_sibling (AgsThread *thread
);
Unlock sibling tree structure.
Since: 0.4.0
void
ags_thread_unlock_children (AgsThread *thread
);
Unlock child tree structure.
Since: 0.4.0
void ags_thread_wait_parent (AgsThread *thread
,AgsThread *parent
);
Wait on parent tree structure.
Since: 0.4.0
void
ags_thread_wait_sibling (AgsThread *thread
);
Wait on sibling tree structure.
Since: 0.4.0
void
ags_thread_wait_children (AgsThread *thread
);
Wait on child tree structure.
Since: 0.4.0
void ags_thread_signal_parent (AgsThread *thread
,AgsThread *parent
,gboolean broadcast
);
Signals the tree in higher levels.
Since: 0.4.0
void ags_thread_signal_sibling (AgsThread *thread
,gboolean broadcast
);
Signals the tree on same level.
Since: 0.4.0
void ags_thread_signal_children (AgsThread *thread
,gboolean broadcast
);
Signals the tree in lower levels.
Since: 0.4.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: 0.4.0
void
ags_thread_stop (AgsThread *thread
);
Stop the threads loop by unsetting AGS_THREAD_RUNNING flag.
Since: 0.4.0
guint ags_thread_interrupted (AgsThread *thread
,int sig
,guint time_cycle
,guint *time_spent
);
Notify to resume interrupted thread.
thread |
the AgsThread |
|
sig |
signal number |
|
time_cycle |
duration of the time cycle |
|
time_spent |
time spent since last cycle |
Since: 0.7.46
void
ags_thread_hangcheck (AgsThread *thread
);
Performs hangcheck of thread.
Since: 0.4.0
AgsThread *
ags_thread_chaos_tree (AgsThread *thread
);
Escape chaos tree, get syncing point.
Since: 0.7.40
gboolean ags_thread_is_chaos_tree (AgsThread *thread
,guint tic_delay
,gboolean is_chaos_tree
);
Check chaos tree and flag threads.
Since: 0.7.43
“frequency”
property“frequency” gdouble
JIFFIE.
Flags: Read / Write
Allowed values: [0.01,1000]
Default value: 1000
Since: 0.4.0
“clock”
signalguint user_function (AgsThread *thread, gpointer user_data)
Flags: Run Last
Since: 0.6.0
“interrupted”
signalguint user_function (AgsThread *thread, gint sig, guint time_cycle, gpointer time_spent, gpointer user_data)
Flags: Run Last
Since: 0.7.46
“resume”
signalvoid user_function (AgsThread *thread, gpointer user_data)
Flags: Run Last
Since: 0.5.0
“run”
signalvoid user_function (AgsThread *thread, gpointer user_data)
Flags: Run Last
Since: 0.5.0
“start”
signalvoid user_function (AgsThread *thread, gpointer user_data)
Flags: Run Last
Since: 0.5.0
“stop”
signalvoid user_function (AgsThread *thread, gpointer user_data)
Flags: Run Last
Since: 0.5.0
“suspend”
signalvoid user_function (AgsThread *thread, gpointer user_data)
Flags: Run Last
Since: 0.5.0