Commit 186d11b5 authored by Wim Taymans's avatar Wim Taymans
Browse files

gst/schedulers/gstoptimalscheduler.c: Remove some FIXMEs after analysing and...

gst/schedulers/gstoptimalscheduler.c: Remove some FIXMEs after analysing and commenting why they are not issues.

Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (remove_decoupled),
(schedule_chain), (get_invalid_call), (chain_invalid_call),
(loop_group_schedule_function), (gst_opt_scheduler_iterate):
Remove some FIXMEs after analysing and commenting why they
are not issues.
parent f8114cc1
2005-02-02 Wim Taymans <wim@fluendo.com>
* gst/schedulers/gstoptimalscheduler.c: (remove_decoupled),
(schedule_chain), (get_invalid_call), (chain_invalid_call),
(loop_group_schedule_function), (gst_opt_scheduler_iterate):
Remove some FIXMEs after analysing and commenting why they
are not issues.
2005-02-02 Wim Taymans <wim@fluendo.com> 2005-02-02 Wim Taymans <wim@fluendo.com>
* gst/schedulers/gstoptimalscheduler.c: * gst/schedulers/gstoptimalscheduler.c:
......
...@@ -1309,7 +1309,9 @@ schedule_chain (GstOptSchedulerChain * chain) ...@@ -1309,7 +1309,9 @@ schedule_chain (GstOptSchedulerChain * chain)
sort_chain (chain); sort_chain (chain);
GST_OPT_SCHEDULER_CHAIN_SET_CLEAN (chain); GST_OPT_SCHEDULER_CHAIN_SET_CLEAN (chain);
/* FIXME handle the case where the groups change during scheduling */ /* since the lock on the group list is only released when we schedule
* a group and since we only schedule one group, we don't need to
* worry about the list getting corrupted. */
groups = chain->groups; groups = chain->groups;
while (groups) { while (groups) {
GstOptSchedulerGroup *group = (GstOptSchedulerGroup *) groups->data; GstOptSchedulerGroup *group = (GstOptSchedulerGroup *) groups->data;
...@@ -1333,6 +1335,7 @@ schedule_chain (GstOptSchedulerChain * chain) ...@@ -1333,6 +1335,7 @@ schedule_chain (GstOptSchedulerChain * chain)
GST_LOG ("done scheduling group %p in chain %p", group, chain); GST_LOG ("done scheduling group %p in chain %p", group, chain);
unref_group (group); unref_group (group);
/* stop scheduling more groups */
break; break;
} }
...@@ -2774,8 +2777,7 @@ gst_opt_scheduler_iterate (GstScheduler * sched) ...@@ -2774,8 +2777,7 @@ gst_opt_scheduler_iterate (GstScheduler * sched)
gboolean scheduled = FALSE; gboolean scheduled = FALSE;
GSList *chains; GSList *chains;
/* we have to schedule each of the scheduler chains now. /* we have to schedule each of the scheduler chains now. */
* FIXME handle the case where the chains change during iterations. */
chains = osched->chains; chains = osched->chains;
while (chains) { while (chains) {
GstOptSchedulerChain *chain = (GstOptSchedulerChain *) chains->data; GstOptSchedulerChain *chain = (GstOptSchedulerChain *) chains->data;
...@@ -2801,6 +2803,8 @@ gst_opt_scheduler_iterate (GstScheduler * sched) ...@@ -2801,6 +2803,8 @@ gst_opt_scheduler_iterate (GstScheduler * sched)
osched->state = GST_OPT_SCHEDULER_STATE_RUNNING; osched->state = GST_OPT_SCHEDULER_STATE_RUNNING;
} }
/* grab the next chain before we unref, the list we are iterating
* can only be updated in the unref method */
chains = g_slist_next (chains); chains = g_slist_next (chains);
unref_chain (chain); unref_chain (chain);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment