void sender() {
int n = 0;
while (n < 100) {
buf.send(n);
{
boost::mutex::scoped_lock lk(io);
std::cout << "sent: " << n << std::endl;
}
++n;
}
buf.send(-1);
}
void receiver() {
int n;
do {
n = buf.receive();
{
boost::mutex::scoped_lock lk(io);
std::cout << "received: " << n << std::endl;
}
} while (n != -1); // -1 indicates end of buffer
}