_Task T { const int tid; std::string name; void f(int param) { if ( param != 0 ) f( param - 1 ); // recursion for ( volatile size_t i = 0; i < 100000000; i += 1 ); // delay int x = 3; std::string y = "example"; } // breakpoint void main() { if ( tid != 0 ) // T0 goes first for ( volatile size_t i = 0; i < 1000000000; i += 1 ) // delay if ( i % 10000000 == 0 ) yield(); // execute other tasks f(3); } public: T(const int tid) : tid( tid ) { name = "T" + std::to_string(tid); setName(name.c_str()); } }; int main() { uProcessor procs[3]; // extra processors const int numTasks = 10; T * tasks[numTasks]; // extra tasks // allocate tasks with different names for (int id = 0; id < numTasks; id += 1) { tasks[id] = new T(id); } // deallocate tasks for (int id = 0; id < numTasks; id += 1) { delete tasks[id]; } } // Local Variables: // // compile-command: "u++-work test.cc -g -multi" // // End: //