Here is a rehash of your code using a queue. You should see how much more useful this is.
Note: in the Increment case is just an Increment function to increase the value in the shift register by 1.
Sorry for next "accepted solution". I was about to click reply.
Thanks for example with queue. I normally use it but I made an example program with occurrences for my friends who wants get familiar with sync palette. It would be great to show them the difference 🙂
Well, my honest opinion on the things in the Synchronization pallete:
Notifiers: 1 to Many lossy communcations
Queues: Many to 1 lossless communications
Semaphore: Not really useful. Use an Action Engine.
Rendezvous: Never used them
Occurances: Onely useful to flag that something has happened. In the very rare cases I have used them (again, FPGA where queues do not really exist or are expensive), I used the Timeout anyways.