| 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 |