Provide explicit ways to prevent concurrency

As a practical matter, the difficulty with these workarounds is that you have to disable every visible component that could possibly interrupt. That includes components not inside self. Those may be siblings, or somewhere else in the component instance tree. (This is “especially difficult” on those occasions where get_open_form() returns None…)

Setting a flag means that every such component/handler must be coded to recognize that flag. Including components that you didn’t write.

The framework can identify potential offenders pretty easily, though. Or alter the way the event loop is processed, more likely.

That might be a difficult undertaking. It might be impractical. And there are likely higher-priority targets. We’ll continue to create workarounds, however flawed and leaky, in the meantime. But at least we’ve identified and communicated a need.

1 Like