Re: Fastcode memory managers
From: Thorsten Engler [NexusDB] (thorsten.englerNO_at_SPAMnexusdb.com)
Date: 11/15/04
- Next message: Dennis: "Fastcode CharPos B&V 4.15"
- Previous message: Eric Grange: "Re: Fastcode memory managers"
- In reply to: Eric Grange: "Re: Fastcode memory managers"
- Next in thread: Thorsten Engler [NexusDB]: "Re: Fastcode memory managers"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 16 Nov 2004 02:37:10 +1000
> Ok, thanks.
> So it "works" by preventing the lower priority thread from getting
> CPU cycles and leaving it in stasis?
The lower priority thread owns the lock and the higher priority thread keeps
spinning around, preventing the lower priority thread from leaving the lock.
This is a "live lock" (opposed to a "dead lock") as the CPU utilization is
100%.
You don't really need a "real-time" priority thread to see it, even a
combination of multiple threads that are only 1 step away from each other
(e.g. lower/normal or normal/higher) is enough to trigger this problem when
the conditions are right. The OS (at least on NT based systems) will
recognize this situation after a few seconds boost the lower priority thread
to just under real-time priority for one time slice. So you won't see a
total lockup, instead just a freeze for a few seconds which the CPU at 100%
before the OS notices the problem. But under the right conditions that can
happen every few minutes or even seconds.
Cheers,
Thorsten Engler [NexusMM Architect]
- Next message: Dennis: "Fastcode CharPos B&V 4.15"
- Previous message: Eric Grange: "Re: Fastcode memory managers"
- In reply to: Eric Grange: "Re: Fastcode memory managers"
- Next in thread: Thorsten Engler [NexusDB]: "Re: Fastcode memory managers"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|