Top |
void | (*GstTaskPoolFunction) () |
GstTaskPool * | gst_task_pool_new () |
void | gst_task_pool_prepare () |
gpointer | gst_task_pool_push () |
void | gst_task_pool_join () |
void | gst_task_pool_cleanup () |
This object provides an abstraction for creating threads. The default implementation uses a regular GThreadPool to start tasks.
Subclasses can be made to create custom threads.
void
(*GstTaskPoolFunction) (void *user_data
);
Task function, see gst_task_pool_push()
.
GstTaskPool *
gst_task_pool_new (void
);
Create a new default task pool. The default task pool will use a regular GThreadPool for threads.
void gst_task_pool_prepare (GstTaskPool *pool
,GError **error
);
Prepare the taskpool for accepting gst_task_pool_push()
operations.
MT safe.
gpointer gst_task_pool_push (GstTaskPool *pool
,GstTaskPoolFunction func
,gpointer user_data
,GError **error
);
Start the execution of a new thread from pool
.
pool |
||
func |
the function to call. |
[scope async] |
user_data |
data to pass to |
[closure] |
error |
return location for an error |
a pointer that should be used
for the gst_task_pool_join function. This pointer can be NULL
, you
must check error
to detect errors.
[transfer none][nullable]
void gst_task_pool_join (GstTaskPool *pool
,gpointer id
);
Join a task and/or return it to the pool. id
is the id obtained from
gst_task_pool_push()
.
void
gst_task_pool_cleanup (GstTaskPool *pool
);
Wait for all tasks to be stopped. This is mainly used internally to ensure proper cleanup of internal data structures in test suites.
MT safe.
struct GstTaskPoolClass { GstObjectClass parent_class; void (*prepare) (GstTaskPool *pool, GError **error); void (*cleanup) (GstTaskPool *pool); gpointer (*push) (GstTaskPool *pool, GstTaskPoolFunction func, gpointer user_data, GError **error); void (*join) (GstTaskPool *pool, gpointer id); };
The GstTaskPoolClass object.
GstObjectClass |
the parent class structure |
|
prepare the threadpool |
||
make sure all threads are stopped |
||
start a new thread |
||
join a thread |