[comp.sys.amiga] Aborting TimerReq

G35%DHDURZ1.BITNET@cunyvm.cuny.edu (Werner Guenther) (11/20/89)

In message <4499@blake.cs.washington.edu> Dale Larson writes:
>As stated in my original message (to which I have recieved no other replies)
>I cannot get things to work properly with a simple AbortIO()/WaitIO() pair.
>The WaitIO() always returns error IOERR_ABORTED (or whatever) and fails
>to clear some bit or another.  The following code segment, however, has
>been working for me:
>
>			if(AbortIO((struct IORequest *)TimerReq))
>			{
>				close_down("AbortIO(TimerReq) Error!");
>			}
>			if(error=WaitIO((struct IORequest *)TimerReq))
>			{
>				Wait(1<<TimerPort->mp_SigBit);
>			}
>
>If I replace the WaitIO() with the Wait(), however, something else is broken
>(it waits forever if I recall correctly, it's been a few weeks and my notes
>are jumbled).

The only way *I* got it to work was by adding a SetSignal() statement
at the end of the AbortIO/WaitIO pair, i.e

        AbortIO(TimerReq);
        WaitIO(TimerReq);
        SetSignal( 1<<TimerPort->mp_SigBit, NULL); /* Clear the signal */


>Can anyone shed any light for me?
>
>--
>	    A lack of prior planning on the part of any programmer
>		       always constitutes an emergency.
>
>           Digital Teddy Bear      dlarson@blake.acs.washington.edu

Hope it helps,
Werner