This is the mail archive of the
mailing list for the crossgcc project.
Re: Atomic Operations (continuing on from Masking Interrupts?)
- To: "Robert J. Brown" <firstname.lastname@example.org>
- Subject: Re: Atomic Operations (continuing on from Masking Interrupts?)
- From: "Hannu Nevalainen" <email@example.com>
- Date: 06 Jul 99 20:26:12 +0100
- Reply-To: firstname.lastname@example.org
In a message dated 06-Jul-99 05:24:13
Robert J. Brown <email@example.com> wrote:
>The fix for this problem is to have a counter that increments on
>disable, and decrements on enable. The enable routine will only
>actually enable interrupts if the value of the counter is zero.
This is the way it is on the Amiga AFAIU... There is two levels of it;
Forbid()/Permit() disable/enable the task scheduler, Disable()/Enable() "adds"
interrupt enable/disable, implying the functionality of Forbid()/Permit() too.
The use of these are ofcurse frowned upon in a multitasking environment, but
on accessing global lists (e.g. the list of available devices/volumes) they
are a must.
The Amiga for the not initiate; Multitasking (*very* good), single user
(possible to run several users at once though; they share the same space), no
protected memory, requires low amount of resources.
,-. / \
/ \ / \
/Hannu E K Nevalainen ,-.
' www.it.kth.se/~henk \ / `-* _ // 1985+
`-' Nynäshamn `-' 17°56.5'E, 58°54.4'N \X/Amiga user
Personal rc5-stats: 22,881 2^28-key blks, i.e. 6,142,071+ Mkeys, M68K Amiga.
450Mhz PII/MMX adding 1.1M RC5 & 4.6M DES keys/s to this since end of Dec'98
"Windows NT "is an acronym for "Windows? No thanks."
New CrossGCC FAQ: http://www.objsw.com/CrossGCC
To remove yourself from the crossgcc list, send
mail to firstname.lastname@example.org with the
text 'unsubscribe' (without the quotes) in the
body of the message.