Facade VIs are called reentrantly, yes, but only for multiple instances of XControls. In other words, if you had two of your XControls on the front panel, then two separate facade VIs would be loaded into memory. So you can debug each instance completely by right clicking that particular XControl on the front panel and selecting Advanced >> Show Diagram.
I agree that this seems like a bug and should be investigated further. The issue seems to be that the XControl can only queue up one Display State Change event at a time. If one hangs while the others are waiting, the last one enqueued will execute.
What you could certainly do to circumvent this would be to add in your own queues to the mix. Have the XControl share a queue that gets created in the Init VI and destroyed in the Uninit VI (an optional ability you'd want to use here). Then have all your property nodes enqueue elements onto this queue. Whenever a Display State Change event occurs, it should service all available queue elements. That way you'd pretty much only need one Display State Change to get most of the functionality you need.
This idea might need some tweaking, but the basic concept should hold. Let me know what you think. The example below doesn't really do anything of interest, but it might help you get started.
Message Edited by Jarrod S. on 10-13-2006 01:58 PM
Jarrod S.
National Instruments