mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
Jeffrey Morlan <mrnobo1024@yahoo.com>
- Fix a major problem in pushlock implementation: if there are 2 or more threads waiting for a lock, only one of them ever gets woken. ExfWakePushLock is missing a break in its loop so it removes all the WaitBlocks instead of just the last one. - This fixes all "weird" hangs happening, including FF1.5 installer hang, VMWare Video Driver Installer hang, taskmgr tabs hang, and other similar problems. See issue #3141 for more details. svn path=/trunk/; revision=34092
This commit is contained in:
parent
2b63244bc8
commit
ed1f927907
1 changed files with 3 additions and 0 deletions
|
@ -155,6 +155,9 @@ ExfWakePushLock(PEX_PUSH_LOCK PushLock,
|
|||
|
||||
/* Remove waking bit from pushlock */
|
||||
InterlockedAnd((PLONG)PushLock, ~EX_PUSH_LOCK_WAKING);
|
||||
|
||||
/* Leave the loop */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue