multiple tasks waiting for an event

Hi, I have a problem.I want to trigger three tasks which are of same priority based on some event . What i have done is: I created three tasks of same priority and another task of lower priority.Then i created a queue of size 1. The higher priority tasks try to peek from the queue and are blocked.Then the lower priority task runs and posts in the queue so all the other tasks waiting for the message are made ready and they run properly .But next time when they try to peek the message is already there and hence they dont wait for the event(occurring of lower priority task). How can i get rid of this problem???