In reply to dave_59:
Thanks Dave,
I added the wait condition for both of them - but now it just unblocks once , but after that it stalls on the second wait call even though the queues are filling up in the monitor classes. Somehow the mon2check value is not being updated in the checker class.
But when again I give a delay between each iteration of the forever block say #10 - It works.