|  |  |  | 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 | 
void                (*GstTaskPoolFunction)              (void *data);
Task function, see gst_task_pool_push().
| 
 | user data for the task function | 
Since 0.10.24
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] | 
Since 0.10.24
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 | 
Since 0.10.24
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. [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. | 
Since 0.10.24
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 | 
Since 0.10.24
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 | 
Since 0.10.24