Hi,
you have changed the semaphore to a synchronisation event. If all worker
threads have a job and there are put more than one new job in the queue,
only one of the jobs is delivered to the workers. The first empty worker
removes one job. The event is never signaled again. All other jobs are never
delivered to the workers. Compiling ros on ros isn't the real problem. I use
three pc for testing. On two pc I can compile ros on ros without any
problems. The third pc is a smp machine. On my third pc, the problem is
somewhere in the smp code (and in many of my not commited changes).
- Hartmut
-----Original Message-----
From: ros-dev-bounces(a)reactos.com [mailto:ros-dev-bounces@reactos.com] On
Behalf Of Gunnar Dalsnes
Sent: Tuesday, November 16, 2004 9:30 PM
To: 'ReactOS Development List'
Subject: RE: [ros-dev] RE: [ros-diffs] [CVS reactos] fix broken work item
impl.
I don't understand why you think my changes are not correct?
The previous impl. crashed when compiling ros-on-ros, due to semaphore limit
overflow and increasing the limit would only be a dirty hack. The semaphore
was not the right tool for this job.
Gunnar
-----Original Message-----
From: ros-dev-bounces(a)reactos.com [mailto:ros-dev-bounces@reactos.com] On
Behalf Of Hartmut Birr
Sent: Tuesday, November 16, 2004 6:39 PM
To: ReactOS Development List
Subject: [ros-dev] RE: [ros-diffs] [CVS reactos] fix broken work item impl.
Hi Gunnar,
for synchronisation between an unlimited count of objects (or 256) in a wait
queue and more than one waiters which removes this objects, there _must_ be
used a semaphore (or equivalent code). Please revert your changes.