Condition Variable: Message Queue

Write a program that …

  • … starts a consumer thread. The consumer reads data from the queue, and writes it to Standard Output. The consumer thread should terminate by receiving a special token over the queue.

  • … starts a producer thread. The producer read data from Standard Input, line by line. Each line is sent to the consumer over the queue.

  • When the producer sees end of file on Standard Input, he inserts a quit token into the queue and terminates.

  • The main thread joins with both threads, and terminates once both are done.