Avoid superfluous notifyAll
calls in Channel.
Slightly reduces the notification overhead in multiple-reader or multiple-writer scenarios.
This commit is contained in:
parent
edec8df026
commit
02f5b4f91d
|
@ -188,7 +188,7 @@ private final class ChannelImpl(T, size_t buffer_size) {
|
|||
thisus.m_items.popFront();
|
||||
}
|
||||
|
||||
if (was_full) thisus.m_condition.notifyAll();
|
||||
if (was_full) thisus.m_condition.notify();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -212,7 +212,7 @@ private final class ChannelImpl(T, size_t buffer_size) {
|
|||
thisus.m_items.popFront();
|
||||
}
|
||||
|
||||
if (was_full) thisus.m_condition.notifyAll();
|
||||
if (was_full) thisus.m_condition.notify();
|
||||
|
||||
return ret.move;
|
||||
}
|
||||
|
@ -235,7 +235,7 @@ private final class ChannelImpl(T, size_t buffer_size) {
|
|||
swap(thisus.m_items, dst);
|
||||
}
|
||||
|
||||
if (was_full) thisus.m_condition.notifyAll();
|
||||
if (was_full) thisus.m_condition.notify();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -256,7 +256,7 @@ private final class ChannelImpl(T, size_t buffer_size) {
|
|||
thisus.m_items.put(item.move);
|
||||
}
|
||||
|
||||
if (need_notify) thisus.m_condition.notifyAll();
|
||||
if (need_notify) thisus.m_condition.notify();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue