add the properties of buffered channel and unbuffered channel

emailweixu-patch-1
chengduoZH 7 years ago
parent d2a31fb8aa
commit 56ebb76c00

@ -149,7 +149,7 @@ void ChannelCloseUnblocksReceiversTest(Channel<int> *ch) {
std::thread t[num_threads];
bool thread_ended[num_threads];
// Launches threads that try to read and are blocked becausew of no writers
// Launches threads that try to read and are blocked because of no writers
for (size_t i = 0; i < num_threads; i++) {
thread_ended[i] = false;
t[i] = std::thread(
@ -167,7 +167,7 @@ void ChannelCloseUnblocksReceiversTest(Channel<int> *ch) {
EXPECT_EQ(thread_ended[i], false);
}
// Explicitly close the thread
// Explicitly close the channel
// This should unblock all receivers
CloseChannel(ch);

@ -27,11 +27,12 @@ namespace details {
// Four of the properties of Buffered Channel:
// - A send to a full channel blocks temporarily until a receive from the
// channel or the channel is closed
// channel or the channel is closed.
// - A receive from an empty channel blocks temporarily until a send to the
// channel or the channel is closed
// - A send to a closed channel returns false immediately
// - A receive from a closed channel returns false immediately
// channel or the channel is closed.
// - A send to a closed channel returns false immediately.
// - A receive from a closed channel returns false immediately.
template <typename T>
class Buffered : public paddle::framework::Channel<T> {
friend Channel<T>* paddle::framework::MakeChannel<T>(size_t);

@ -23,6 +23,13 @@ namespace paddle {
namespace framework {
namespace details {
// Four of the properties of UnBuffered Channel:
// - A send to a channel blocks temporarily until a receive from the
// channel or the channel is closed.
// - A receive from a channel blocks temporarily until a send to the
// channel or the channel is closed.
// - A send to a closed channel returns false immediately.
// - A receive from a closed channel returns false immediately.
template <typename T>
class UnBuffered : public paddle::framework::Channel<T> {
friend Channel<T>* paddle::framework::MakeChannel<T>(size_t);

Loading…
Cancel
Save