Here's the issue:[indent]
Any event for which an event structure is registered, but for which it does not have a case, resets the timeout of that event structure anyway.[/indent]
To put it another way, imagine you have a custom event that's wired to multiple event structures. However, not every event structure actually handles the event (i.e. they don't all have a case for it). When you fire that event, it will reset the timeout counter for all the event structures, even the ones that don't handle the event. This means it's possible to have an event structure in your code that never times out, and also never executes an event handler, even though it's got a non-zero timeout value.
This feels like a bug to me for the following reasons:
- We register for Front Panel events by creating event cases for them, and events that don't have cases don't interrupt the timeout. Why would we not expect User Events to work the same way?
- It's virtually impossible to detect when this is happening in your code. In the attached example, the event structure looks like it should be timing out, and in a complicated application it's almost impossible to tell why it's not.
Screencast: http://screencast.com/t/qDIKpn9oQnlD
Snippet:
(note the snippet creation made those crazy non-static property nodes on the stop logic; that's not me
Code (LV2009):
Event Structure Timeout Bug.vi (13.05K)
Number of downloads: 82














