I have a piston that use to work just fine but has stopped working well for a little while now. After some debugging, I can see that I sometimes don’t get the wakeup event from executing the “wait” instruction. Here is the code that I am running.
In the following log, we see a wakeup time set, but my piston doesn’t get the event. You can see the next event is significantly after the wakeup time.
Often when something goes wrong with a ‘wait’ it is because the conditional that caused it to run has changed and the default Task Cancellation Policy kicks in and kills the task. I don’t know if that is likely to be a factor here if it used to work find and nothing has changed.
One sort of conditional that will often cause problems is a trigger like ‘changes to closed’ as that is only true for a short while before being reset. I don’t know how long but I’ve seen ten seconds suggested.
Jan 2020 Update: I recently came across this old post. The last paragraph drew on the best information I could find at the time, posted by experienced users. However, to cut a long story short, that is NOT how webCoRE works.