a bit friendlier

This commit is contained in:
David Rose 2008-10-03 03:52:00 +00:00
parent 76687fca8f
commit 277753ed2b
3 changed files with 25 additions and 9 deletions

View File

@ -211,7 +211,7 @@ class TaskManager:
self.mgr.add(task)
return task
def add(self, funcOrTask, name, sort = None, extraArgs = None,
def add(self, funcOrTask, name = None, sort = None, extraArgs = None,
priority = None, uponDeath = None, appendTask = False,
taskChain = None, owner = None):
@ -275,13 +275,16 @@ class TaskManager:
else:
self.notify.error(
'add: Tried to add a task that was not a Task or a func')
assert isinstance(name, types.StringTypes), 'Name must be a string type'
if extraArgs is None:
extraArgs = []
appendTask = True
task.setArgs(extraArgs, appendTask)
task.setName(name)
if name is not None:
assert isinstance(name, types.StringTypes), 'Name must be a string type'
task.setName(name)
assert task.hasName()
# For historical reasons, if priority is specified but not
# sort, it really means sort.

View File

@ -49,8 +49,9 @@ get_manager() const {
//
// Setting this value after the task has already been
// added will not affect the task's wake time; it will
// only affect the task if the it is re-added to the
// queue in the future.
// only affect the task if it is re-added to the queue
// in the future, for instance if the task returns
// DS_again.
////////////////////////////////////////////////////////////////////
INLINE void AsyncTask::
set_delay(double delay) {

View File

@ -248,9 +248,13 @@ __setattr__(const string &attr_name, PyObject *v) {
}
if (attr_name == "delayTime") {
double delay = PyFloat_AsDouble(v);
if (!PyErr_Occurred()) {
set_delay(delay);
if (v == Py_None) {
clear_delay();
} else {
double delay = PyFloat_AsDouble(v);
if (!PyErr_Occurred()) {
set_delay(delay);
}
}
} else if (attr_name == "name") {
@ -259,7 +263,7 @@ __setattr__(const string &attr_name, PyObject *v) {
set_name(name);
}
} else if (attr_name == "id") {
} else if (attr_name == "id" || attr_name == "wakeTime") {
nassert_raise("Cannot set constant value");
return true;
@ -300,7 +304,15 @@ __getattr__(const string &attr_name) const {
} else if (attr_name == "name") {
return PyString_FromString(get_name().c_str());
} else if (attr_name == "wakeTime") {
if (get_state() != S_sleeping) {
Py_RETURN_NONE;
}
return PyFloat_FromDouble(get_wake_time());
} else if (attr_name == "delayTime") {
if (!has_delay()) {
Py_RETURN_NONE;
}
return PyFloat_FromDouble(get_delay());
} else if (attr_name == "id") {
return PyInt_FromLong(_task_id);
} else {