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