[ros-dev] Re: [ros-svn] [ion] 20554: - Fix shamefully dangerously
broken Work Thread/Queue/Item implementation:
osexpert at googlemail.com
Wed Jan 4 00:22:31 CET 2006
ion at svn.reactos.org wrote:
> - 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:
> Ros-svn mailing list
> Ros-svn at reactos.org
After applying this commit, I get a crash during compiling ros on ros
with 'make clean' on a clean tree on my smp machine:
Assertion (Thread->State == Waiting) == (Thread->WaitBlockList != NULL)
failed at ./ntoskrnl/ke/wait.c:722
I don't get a back trace. It may be a problem of the broken ASSERT
statement (DBG=1 and KDBG=0).
More information about the Ros-dev