mirror of
https://github.com/sogou/workflow.git
synced 2026-10-29 03:27:04 +08:00
Windows (#120)
* make SeriesWork and ParallelWork derivable Co-authored-by: XieHan <XieHan@sogou-inc.com>
This commit is contained in:
@@ -25,9 +25,9 @@
|
||||
#include "Workflow.h"
|
||||
|
||||
SeriesWork::SeriesWork(SubTask *first, series_callback_t&& cb) :
|
||||
queue(new SubTask *[4]),
|
||||
callback(std::move(cb))
|
||||
{
|
||||
this->queue = new SubTask *[4];
|
||||
this->queue_size = 4;
|
||||
this->front = 0;
|
||||
this->back = 0;
|
||||
|
||||
+12
-8
@@ -114,6 +114,10 @@ public:
|
||||
this->last = last;
|
||||
}
|
||||
|
||||
protected:
|
||||
void *context;
|
||||
series_callback_t callback;
|
||||
|
||||
private:
|
||||
SubTask *pop_task();
|
||||
void expand_queue();
|
||||
@@ -128,13 +132,11 @@ private:
|
||||
int back;
|
||||
bool in_parallel;
|
||||
bool canceled;
|
||||
void *context;
|
||||
std::mutex mutex;
|
||||
series_callback_t callback;
|
||||
|
||||
private:
|
||||
protected:
|
||||
SeriesWork(SubTask *first, series_callback_t&& callback);
|
||||
~SeriesWork() { delete []this->queue; }
|
||||
virtual ~SeriesWork() { delete []this->queue; }
|
||||
friend class ParallelWork;
|
||||
friend class Workflow;
|
||||
};
|
||||
@@ -230,9 +232,13 @@ public:
|
||||
this->callback = std::move(callback);
|
||||
}
|
||||
|
||||
private:
|
||||
protected:
|
||||
virtual SubTask *done();
|
||||
|
||||
protected:
|
||||
void *context;
|
||||
parallel_callback_t callback;
|
||||
|
||||
private:
|
||||
void expand_buf();
|
||||
void dismiss_recursive();
|
||||
@@ -240,10 +246,8 @@ private:
|
||||
private:
|
||||
size_t buf_size;
|
||||
SeriesWork **all_series;
|
||||
void *context;
|
||||
parallel_callback_t callback;
|
||||
|
||||
private:
|
||||
protected:
|
||||
ParallelWork(parallel_callback_t&& callback);
|
||||
ParallelWork(SeriesWork *const all_series[], size_t n,
|
||||
parallel_callback_t&& callback);
|
||||
|
||||
Reference in New Issue
Block a user