Beispiel #1
0
std::unique_ptr<WorkRequest> Worker::send(Fn work, Fn after) {
    auto task = std::make_shared<WorkTask>(work, after);
    auto request = std::make_unique<WorkRequest>(task);

    threads[current]->invokeWithResult(&Worker::Impl::doWork, [task] {
        task->runAfter();
    }, task);

    current = (current + 1) % threads.size();
    return request;
}
Beispiel #2
0
void Task_Implement::runTask()
{
	runBeforce();
	if (isUsed()){
		run();
	}
	else{
		runFailed();
	}
	runAfter();
}