- Optimized the dispatcher lock. It is now gone on non-SMP systems and IRQL is raised...
authorAlex Ionescu <aionescu@gmail.com>
Thu, 5 Jan 2006 04:26:55 +0000 (04:26 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Thu, 5 Jan 2006 04:26:55 +0000 (04:26 +0000)
commit5e6fa262314c5122f9c9c762364669afb22745e6
tree7b0c700eabfbdffac885268e067e0372006f94d1
parentf58996b3e9a4bb48efbe6a6b6e751dcf9b3b1f89
- Optimized the dispatcher lock. It is now gone on non-SMP systems and IRQL is raised or lowered instead.
- Made inlined functions in ke/wait.c macros, because they weren't being inlined.
- Created separate cases for satisfying mutant, non-mutant and generic objects, to optimize wait satisfaction.
- Fixed some places which werne't setting the dispatcher header's size member correctly.
- Fixed formatting in ke/wait.c
- Fixed a case in KiCheckAlertability: we also need to check if the thread is alerted in Kernel-Mode, even if the wait mode given was user and user-mode is not alerted.
- Fixed signaling checks across the wait code and removed KiCheckIfObjectSignaled. We must not consider the mutant as signaled if SignalState is = 1.
- Fix code to check if the wait blocks' status is STATUS_TIMEOUT, because we do not need to check for signal state in that case.
- Removed the exports for internal dispatcher lock routines.

** Thanks to Waxdragon for stress-testing this for an hour :)

svn path=/trunk/; revision=20568
reactos/ntoskrnl/include/internal/ke.h
reactos/ntoskrnl/ke/i386/ctxswitch.S
reactos/ntoskrnl/ke/kthread.c
reactos/ntoskrnl/ke/wait.c
reactos/ntoskrnl/ntoskrnl.def
reactos/ntoskrnl/ps/psmgr.c