GPUOpen-Archive / Anvil

Anvil is a cross-platform framework for Vulkan
MIT License
594 stars 62 forks source link

Window creation lock-up fix #119

Closed kbiElude closed 5 years ago

kbiElude commented 5 years ago

Fix a lock-up which could occur if:

1) Window thread T1 became temporarily unresponsive, waiting for T2 to finish 2) Thread T2 tried to create an Anvil window instance for window owned by T1.

The lock-up occurred because GetWindowTextLength() actually maps to a window message which cannot be handled because T1 is waiting on T2. There's no real solution other than just getting rid of the circular dependency, meaning we need Anvil to stop trying to retrieve window name at Anvil::Window creation time.