Implemented putting items in and taking items from the buffer and waiting on signal when the buffer is full.