X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Finternaltask.cpp;h=c117bad897365f9e4159f7c58b9f9b764f6ae13c;hb=0aa50a0d3e5567e9295ecf4d7ba6d4b14fa73b9b;hp=42932034c1435d4a655182b7189f86068bf9b5fb;hpb=c06c655a1e1a3e4d60257c2916923b789c6a26b9;p=builder.git diff --git a/source/internaltask.cpp b/source/internaltask.cpp index 4293203..c117bad 100644 --- a/source/internaltask.cpp +++ b/source/internaltask.cpp @@ -6,9 +6,15 @@ InternalTask::InternalTask(Worker *w): InternalTask::~InternalTask() { + worker->join(); delete worker; } +void InternalTask::start() +{ + worker->launch(); +} + Task::Status InternalTask::check() { if(worker->get_status()!=RUNNING) @@ -16,6 +22,13 @@ Task::Status InternalTask::check() return worker->get_status(); } +Task::Status InternalTask::wait() +{ + Status result; + while((result = worker->get_status())==RUNNING) ; + return result; +} + InternalTask::Worker::Worker(): status(RUNNING)