On Wed Feb 8 18:55:31 2023 +0000, Zebediah Figura wrote:
Well we currently crash indeed but I don't think it is intentional. Making it explicit would make it look more like it is.
I'd think that instead we should block the signals in the threads that cannot handle them, or handle them in a way that doesn't require a TEB.
USR1 / USR2 / INT for instance could be blocked in non-Wine threads, raising them again until they reach a Wine thread. I think QUIT should be handled properly by calling `pthread_cancel` or `pthread_exit` and letting the thread cleanup properly.
On 2/8/23 12:55, Rémi Bernon (@rbernon) wrote:
USR1 / USR2 / INT for instance could be blocked in non-Wine threads, raising them again until they reach a Wine thread.
I think USR1 may only be received by a non-Wine thread if it was originated by some native library and not by wineserver which sends that only to threads it knows? In that case, not sure how that can be handled better in a Wine thread?
Also, is there a good way to block signals in threads which are created by native libraries, I think we don't know anything about those threads?