#define SET_TASK_STATE(t,s) (g_atomic_int_set (&GST_TASK_STATE(t), (s)))
#define GET_TASK_STATE(t) ((GstTaskState) g_atomic_int_get (&GST_TASK_STATE(t)))
-#define GST_TASK_GET_PRIVATE(obj) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_TASK, GstTaskPrivate))
-
struct _GstTaskPrivate
{
/* callbacks for managing the thread of this task */
GST_DEBUG_CATEGORY_INIT (task_debug, "task", 0, "Processing tasks"); \
}
-G_DEFINE_TYPE_WITH_CODE (GstTask, gst_task, GST_TYPE_OBJECT, _do_init);
+G_DEFINE_TYPE_WITH_CODE (GstTask, gst_task, GST_TYPE_OBJECT,
+ G_ADD_PRIVATE (GstTask) _do_init);
static void
init_klass_pool (GstTaskClass * klass)
gobject_class = (GObjectClass *) klass;
- g_type_class_add_private (klass, sizeof (GstTaskPrivate));
-
gobject_class->finalize = gst_task_finalize;
init_klass_pool (klass);
klass = GST_TASK_GET_CLASS (task);
- task->priv = GST_TASK_GET_PRIVATE (task);
+ task->priv = gst_task_get_instance_private (task);
task->running = FALSE;
task->thread = NULL;
task->lock = NULL;
g_mutex_lock (&pool_lock);
task->priv->pool = gst_object_ref (klass->pool);
g_mutex_unlock (&pool_lock);
-
- /* clear floating flag */
- gst_object_ref_sink (task);
}
static void
GST_DEBUG ("Created task %p", task);
+ /* clear floating flag */
+ gst_object_ref_sink (task);
+
return task;
}