Fix a bug that node is waked up regardless of its node dependency.
This bug can be reproduced like below,
[example graph pipeline]
input --- face detection --- bridge --- face landmark --- endpoint
| |
----------------------------------------
endpoint node will be waked up regardless of its node dependency after
previous iteration of above graph pipeline is completed because
_completed of face landmark node is true after previous iteration so
wait() just returns like below,
void TaskNode::wait()
{
unique_lock<mutex> lock(_mutex);
// If already completed then just return.
if (_completed) // <- here
return;
_event.wait(lock, [this] { return this->_completed; });
}
Therefore, make sure to set _completed as false in clear()
Change-Id: I6595e7199e2dc9aa3ecbcaa0fedcddcbc74e7166
Signed-off-by: Inki Dae <inki.dae@samsung.com>
_inputBuffer = nullptr;
_outputBuffer = nullptr;
_status = NodeStatus::NONE;
+ _completed = false;
}
}