refine channel (#7910)

emailweixu-patch-1
chengduo 8 years ago committed by Yi Wang
parent 8a6a339eb4
commit a026f52b73

@ -18,8 +18,7 @@ limitations under the License. */
#include <queue> #include <queue>
namespace paddle { namespace paddle {
namespace operators { namespace framework {
namespace detail {
template <typename T> template <typename T>
class Channel { class Channel {
@ -38,7 +37,7 @@ class Channel {
channel_.push_back(std::move(*channel_element)); channel_.push_back(std::move(*channel_element));
lock.unlock(); lock.unlock();
empty_cond_var_.notify_all(); empty_cond_var_.notify_one();
} }
T* Receive() { T* Receive() {
@ -75,7 +74,7 @@ class Channel {
void NotifyAllSenders(std::unique_lock<std::mutex>* lock) { void NotifyAllSenders(std::unique_lock<std::mutex>* lock) {
if (IsBounded()) { if (IsBounded()) {
lock->unlock(); lock->unlock();
full_cond_var_.notify_all(); full_cond_var_.notify_one();
} }
} }
@ -84,6 +83,5 @@ class Channel {
bool IsCapacityFull() const { return channel_.size() >= capacity_; } bool IsCapacityFull() const { return channel_.size() >= capacity_; }
}; };
} // namespace detail
} // namespace operator } // namespace operator
} // namespace paddle } // namespace paddle
Loading…
Cancel
Save