2#include <cx/taskqueue/task/complextask.cxh>
4[methodprefix ctaskqueue] class ComplexTaskQueue extends TaskQueue {
5 PrQueue advanceq; // tasks that are being advanced out of the defer and/or schedule lists
6 [ref] [sorted] sarray:object:ComplexTask scheduled; // tasks that are scheduled to run at a later time, sorted by time
7 [refkeys] hashtable:object:none deferred; // tasks that are deferred indefinitely, to be held until they are advanced
9 bool schedule([in] ComplexTask *task, int64 delay); // add a task scheduled to run a relative time in the future
10 bool defer([in] ComplexTask *task); // add a task but defer it indefinitely
11 bool advance([in] ComplexTask *task);
14 override _processDone;
15 override _processExtra;
19 factory create(strref name, uint32 flags, int64 gcinterval, [in] TQRunner *runner, [in] TQManager *manager, [in] [opt] TQMonitor *monitor);