]> git.tdb.fi Git - builder.git/blobdiff - source/internaltask.cpp
Add support for statically linking the C++ standard library
[builder.git] / source / internaltask.cpp
index 37c9b75de91a9fb5962cb58584749245308cc9a0..5cbbd09ad0dc787e36cd37f3d729cc2e7c77fdbb 100644 (file)
@@ -6,22 +6,32 @@ InternalTask::InternalTask(Worker *w):
 
 InternalTask::~InternalTask()
 {
+       worker->join();
        delete worker;
 }
 
 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 = check())==RUNNING) ;
+       return result;
 }
 
 
 InternalTask::Worker::Worker():
-       status(RUNNING)
+       status(Task::RUNNING)
 { }