![]() |
![]() |
![]() |
GStreamer 0.10 Core Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy |
#include <gst/gst.h> GstTaskPool; GstTaskPoolClass; void (*GstTaskPoolFunction) (void *data); GstTaskPool * gst_task_pool_new (void); void gst_task_pool_prepare (GstTaskPool *pool, GError **error); gpointer gst_task_pool_push (GstTaskPool *pool, GstTaskPoolFunction func, gpointer user_data, GError **error); void gst_task_pool_join (GstTaskPool *pool, gpointer id); void gst_task_pool_cleanup (GstTaskPool *pool);
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)
typedef struct { 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); } GstTaskPoolClass;
The GstTaskPoolClass object.
GstObjectClass |
the parent class structure |
|
prepare the threadpool |
|
make sure all threads are stopped |
|
start a new thread |
|
join a thread |
GstTaskPool * gst_task_pool_new (void);
Create a new default task pool. The default task pool will use a regular GThreadPool for threads.
Returns : |
a new GstTaskPool. gst_object_unref() after usage.
|
void gst_task_pool_prepare (GstTaskPool *pool, GError **error);
Prepare the taskpool for accepting gst_task_pool_push()
operations.
MT safe.
|
a GstTaskPool |
|
an error return location |
gpointer gst_task_pool_push (GstTaskPool *pool, GstTaskPoolFunction func, gpointer user_data, GError **error);
Start the execution of a new thread from pool
.
|
a GstTaskPool |
|
the function to call |
|
data to pass to func
|
|
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.
|
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()
.
|
a GstTaskPool |
|
the id |
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.
|
a GstTaskPool |