| 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.
Last reviewed on 2009-04-23 (0.10.24)
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
.
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 |