CMPT300 SFU Assignment 2, Extended Case of Producer Consumer Problem