|  |  |  | GStreamer 1.0 Core Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | Object Hierarchy | ||||
#include <gst/gst.h> struct GstTaskPool; struct GstTaskPoolClass; void (*GstTaskPoolFunction) (void *user_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)
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 | 
void                (*GstTaskPoolFunction)              (void *user_data);
Task function, see gst_task_pool_push().
| 
 | user data for the task function | 
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. [transfer full] | 
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. [scope async] | 
| 
 | data to pass to func. [closure] | 
| 
 | 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 errorto detect errors. [transfer none] | 
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 |