[ros-svn] [ion] 20554: - Fix shamefully dangerously broken Work Thread/Queue/Item implementation:

ion at svn.reactos.org ion at svn.reactos.org
Tue Jan 3 22:34:55 CET 2006


- 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.


Updated files:
trunk/reactos/include/ndk/exfuncs.h
trunk/reactos/include/ndk/extypes.h
trunk/reactos/include/ndk/ifssupp.h
trunk/reactos/include/ndk/iofuncs.h
trunk/reactos/include/ndk/obfuncs.h
trunk/reactos/include/ndk/pstypes.h
trunk/reactos/include/ndk/rtlfuncs.h
trunk/reactos/include/ndk/rtltypes.h
trunk/reactos/lib/rtl/dos8dot3.c
trunk/reactos/ntoskrnl/ex/work.c
trunk/reactos/ntoskrnl/ntoskrnl.mc
trunk/reactos/w32api/include/ddk/ntifs.h




More information about the Ros-svn mailing list