Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!ucsd!nosc!crash!pnet01!uzun From: uzun@pnet01.cts.com (Roger Uzun) Newsgroups: comp.sys.amiga.tech Subject: Re: Micro Timing Critical sections HELP! Message-ID: <4559@crash.cts.com> Date: 21 Sep 90 17:56:04 GMT Sender: root@crash.cts.com Organization: People-Net [pnet01], El Cajon CA Lines: 19 >> Dave haynie writes that an application need never use Disable()/Enable() Actually this is not true. When I wrote a interrupt handler to strip off mousevents from the input.device queue, I was "pruning" the linked list of events streaming in, (using the IND_ADDHANDLER function of the input.device). I found that if MASSIVE joystick twitching occurred while pruning this linked list of events, the linked list pruning could be interrupted in a critical section of removing one of the port 1 (mouseport) events, and this caused a system crash (only when doing 6 bitplane anims with all sprites enabled, when I had 5 bitplane anims with no sprites enabled, I could not get it to crash). To get around this I had to replace the the Disable/Enable sequence in the int handler with a forbid/permit sequence, then no crashes were possible. -Roger UUCP: {hplabs!hp-sdd ucsd nosc}!crash!pnet01!uzun ARPA: crash!pnet01!uzun@nosc.mil INET: uzun@pnet01.cts.com