In reply to rag123:
A "trigger" is 0 time width signaling mechanism. You have to use wait_trigger() before the event get triggered. The persistent wait_ptrigger() removes race conditions with the same time slot.
You would have to use the wait_on() and then reset(), but you probably should be looking for a different form of communication depending on what you are ultimately trying to achieve, like a queue or fifo.