X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Finternaltask.cpp;h=5cbbd09ad0dc787e36cd37f3d729cc2e7c77fdbb;hb=8ee4fd693c8d15265f0c145221737a322f89618b;hp=c117bad897365f9e4159f7c58b9f9b764f6ae13c;hpb=afeb81fb97b8ee4e50a3679707deb17e5b79a74f;p=builder.git diff --git a/source/internaltask.cpp b/source/internaltask.cpp index c117bad..5cbbd09 100644 --- a/source/internaltask.cpp +++ b/source/internaltask.cpp @@ -12,24 +12,26 @@ InternalTask::~InternalTask() void InternalTask::start() { + prepare(); worker->launch(); } Task::Status InternalTask::check() { - if(worker->get_status()!=RUNNING) - signal_finished.emit(worker->get_status()==SUCCESS); - return worker->get_status(); + Status result = worker->get_status(); + if(result!=RUNNING) + signal_finished.emit(result==SUCCESS); + return result; } Task::Status InternalTask::wait() { Status result; - while((result = worker->get_status())==RUNNING) ; + while((result = check())==RUNNING) ; return result; } InternalTask::Worker::Worker(): - status(RUNNING) + status(Task::RUNNING) { }