- Fix shamefully dangerously broken Work Thread/Queue/Item implementation:
authorAlex Ionescu <aionescu@gmail.com>
Tue, 3 Jan 2006 21:34:19 +0000 (21:34 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Tue, 3 Jan 2006 21:34:19 +0000 (21:34 +0000)
commit07b0b865dcb87a13fa0a3dd2566f7896d58e93de
treed0345ec50b5c8887cdc96bf81750083e412bc14f
parent1aea3ab1ab115e662c2bfb3f64a16ae5b6d2240b
- Fix shamefully dangerously broken Work Thread/Queue/Item implementation:
  * Do not pollute the kernel with 10 real-time threads and 5 high-priority threads in order to manage work items. Work threads are very-low priority (< 7) and should never pre-empt userthreads like they do now. 1 priority 7, 5 priority 5 and 3 priority 4 threads are now properly created.
  * Implement a worker thread balance set manager. On SMP systems, it is able to determine when a new thread should be allocate to execute on a free CPU. On both UP and MP, it is also able to detect if a work queue has deadlocked, and will allocate new dynamic threads to unfreeze the queue.
  * Add check for threads returning with APC disabled, and re-enable APCs if this happend. This hack is used in NT for broken drivers.
  * Lots of code changes to support dynamic threads, which:
    - Can terminate.
    - Use a 10 minute timeout on the kernel queue.
  * Add skeleton code for swapping worker thread stacks as well as worker thread shutdown (not yet implemented).
  * Add WORKER_INVALID bugcheck definition.
  * These changes seem to make ROS a lot more responsive.

- NDK:
  * Make more compatible with MS IFS
  * Fix EX_WORK_QUEUE definition.
  * Fix ETHREAD offsets.
  * Fix RtlIsNameLegalDOS8Dot3 definition.
  * Move splay tree defines to IFS.

svn path=/trunk/; revision=20554
12 files changed:
reactos/include/ndk/exfuncs.h
reactos/include/ndk/extypes.h
reactos/include/ndk/ifssupp.h
reactos/include/ndk/iofuncs.h
reactos/include/ndk/obfuncs.h
reactos/include/ndk/pstypes.h
reactos/include/ndk/rtlfuncs.h
reactos/include/ndk/rtltypes.h
reactos/lib/rtl/dos8dot3.c
reactos/ntoskrnl/ex/work.c
reactos/ntoskrnl/ntoskrnl.mc
reactos/w32api/include/ddk/ntifs.h