Top |
Functions
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 () |
Description
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.
Functions
GstTaskPoolFunction ()
void
(*GstTaskPoolFunction) (void *user_data
);
Task function, see gst_task_pool_push()
.
gst_task_pool_new ()
GstTaskPool *
gst_task_pool_new (void
);
Create a new default task pool. The default task pool will use a regular GThreadPool for threads.
gst_task_pool_prepare ()
void gst_task_pool_prepare (GstTaskPool *pool
,GError **error
);
Prepare the taskpool for accepting gst_task_pool_push()
operations.
MT safe.
gst_task_pool_push ()
gpointer gst_task_pool_push (GstTaskPool *pool
,GstTaskPoolFunction func
,gpointer user_data
,GError **error
);
Start the execution of a new thread from pool
.
Parameters
pool |
||
func |
the function to call. |
[scope async] |
user_data |
data to pass to |
[closure] |
error |
return location for an error |
Returns
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]
gst_task_pool_join ()
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()
.
gst_task_pool_cleanup ()
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.
Types and Values
struct GstTaskPoolClass
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.