live changes to set_sort, set_priority
This commit is contained in:
parent
e8587e4144
commit
5d8cd59628
|
|
@ -207,9 +207,11 @@ set_sort(int sort) {
|
|||
// Changing sort on an "active" (i.e. enqueued) task means
|
||||
// removing it and re-inserting it into the queue.
|
||||
PT(AsyncTask) hold_task = this;
|
||||
_manager->remove(this);
|
||||
AsyncTaskChain *chain = _manager->do_find_task_chain(_chain_name);
|
||||
nassertv(chain != (AsyncTaskChain *)NULL);
|
||||
chain->do_remove(this);
|
||||
_sort = sort;
|
||||
_manager->add(this);
|
||||
chain->do_add(this);
|
||||
|
||||
} else {
|
||||
// If it's sleeping, currently being serviced, or something
|
||||
|
|
@ -246,9 +248,11 @@ set_priority(int priority) {
|
|||
// Changing priority on an "active" (i.e. enqueued) task means
|
||||
// removing it and re-inserting it into the queue.
|
||||
PT(AsyncTask) hold_task = this;
|
||||
_manager->remove(this);
|
||||
AsyncTaskChain *chain = _manager->do_find_task_chain(_chain_name);
|
||||
nassertv(chain != (AsyncTaskChain *)NULL);
|
||||
chain->do_remove(this);
|
||||
_priority = priority;
|
||||
_manager->add(this);
|
||||
chain->do_add(this);
|
||||
|
||||
} else {
|
||||
// If it's sleeping, currently being serviced, or something
|
||||
|
|
|
|||
|
|
@ -308,6 +308,8 @@ do_add(AsyncTask *task) {
|
|||
double now = _manager->_clock->get_frame_time();
|
||||
task->_start_time = now;
|
||||
|
||||
_manager->add_task_by_name(task);
|
||||
|
||||
if (task->has_delay()) {
|
||||
// This is a deferred task. Add it to the sleeping queue.
|
||||
task->_wake_time = now + task->get_delay();
|
||||
|
|
@ -796,7 +798,13 @@ void AsyncTaskChain::
|
|||
do_write(ostream &out, int indent_level) const {
|
||||
if (has_name()) {
|
||||
indent(out, indent_level)
|
||||
<< get_name() << "\n";
|
||||
<< get_name();
|
||||
if (_num_threads > 0) {
|
||||
out << ", " << _num_threads << " threads";
|
||||
}
|
||||
out << "\n";
|
||||
} else if (_num_threads > 0) {
|
||||
out << "Default task chain, " << _num_threads << " threads\n";
|
||||
}
|
||||
|
||||
static const size_t buffer_size = 1024;
|
||||
|
|
|
|||
|
|
@ -168,8 +168,6 @@ add(AsyncTask *task) {
|
|||
task->_state == AsyncTask::S_inactive);
|
||||
nassertv(!do_has_task(task));
|
||||
|
||||
add_task_by_name(task);
|
||||
|
||||
AsyncTaskChain *chain = do_find_task_chain(task->_chain_name);
|
||||
if (chain == (AsyncTaskChain *)NULL) {
|
||||
event_cat.warning()
|
||||
|
|
@ -501,6 +499,7 @@ write(ostream &out, int indent_level) const {
|
|||
tci != _task_chains.end();
|
||||
++tci) {
|
||||
AsyncTaskChain *chain = (*tci);
|
||||
out << "\n";
|
||||
chain->do_write(out, indent_level + 2);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue