On Thu Nov 3 01:20:08 2022 +0000, Piotr Caban wrote:
I think that the problem in this application is completely different. I don't know why your patch makes a difference for you but it doesn't help in my case (as expected). Please note that I would like to get your patch committed to wine anyway. But the commit message doesn't make sense (please change it to `msvcp90: Make _Condition_variable_* function pointers static.`). I have quickly debugged the issue and it's related to internal representation of SRWLock. The application does following thing:
SRWLock *lock; lock = malloc(sizeof(*lock)); lock->Ptr = (void*)1; ReleaseSRWLockExclusive(lock);
On Windows lock->Ptr=1 is used to mark that the exclusive lock is being held with no waiters. In this case ReleaseSRWLockExclusive should probably set lock->Ptr=NULL and return. See attached hack that lets the application start on my machine ([0001-tmp.txt](/uploads/506068c59882aaf35362845fa9b82fea/0001-tmp.txt)). @zfigura - you may be interested in looking into it :smile:
@piotr I changed the commit instructions as you said。But I'm wondering why you didn't reproduce that。 my env: debain 11 wine i386