git-svn-id: svn://db.shs.com.ru/pip@276 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -33,7 +33,7 @@ public:
|
||||
PIPipelineThread() {
|
||||
cnt = 0;
|
||||
max_size = 0;
|
||||
wait_next_pipe = true;
|
||||
wait_next_pipe = false;
|
||||
next_overload = false;
|
||||
}
|
||||
~PIPipelineThread() {
|
||||
@@ -48,7 +48,8 @@ public:
|
||||
EVENT_HANDLER1(void, enqueue, const Tin &, v) {enqueue(v, 0);}
|
||||
EVENT_HANDLER2(void, enqueue, const Tin &, v, bool *, overload) {
|
||||
mutex.lock();
|
||||
if (max_size > 0 && in.size() < max_size) {
|
||||
// piCout << "enque" << max_size << in.size();
|
||||
if (max_size == 0 || in.size() < max_size) {
|
||||
in.enqueue(v);
|
||||
if (overload) *overload = false;
|
||||
} else {
|
||||
@@ -104,7 +105,7 @@ public:
|
||||
|
||||
void setMaxQueSize(uint count) {
|
||||
mutex.lock();
|
||||
count = max_size;
|
||||
max_size = count;
|
||||
if (max_size > 0 && in.size() > max_size) in.resize(max_size);
|
||||
mutex.unlock();
|
||||
}
|
||||
@@ -125,17 +126,20 @@ private:
|
||||
return;
|
||||
}
|
||||
if (next_overload && wait_next_pipe) {
|
||||
mutex.unlock();
|
||||
calculated(last, &next_overload);
|
||||
piMSleep(10);
|
||||
} else {
|
||||
Tin t = in.dequeue();
|
||||
bool ok = true;
|
||||
mutex.unlock();
|
||||
bool ok = true;
|
||||
Tout r = calc(t, ok);
|
||||
if (ok) {
|
||||
mutex_l.lock();
|
||||
last = r;
|
||||
mutex_l.unlock();
|
||||
cnt++;
|
||||
// next_overload = true;
|
||||
calculated(r, &next_overload);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user