#include #include #ifndef SIGC_PTHREADS int main() { cout << "SigC not compiled with pthreads."< items; Semaphore done(-1); struct Consumer :public Thread { Semaphore turn; virtual void* main(void*); Consumer():Thread(),turn(0) {} }; struct Producer :public Thread { Semaphore turn; virtual void* main(void*); Producer():Thread(),turn(1) {} }; Consumer consumer; Producer producer; int main() { consumer.start(); producer.start(); done.down(); cout <<"Done!"<