home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * DClose.C
- */
-
- #include "lib.h"
-
- void
- DClose(_chan)
- void *_chan;
- {
- CHANN *chan = (CHANN *)_chan;
- IOSTD ior;
- IOSTD *io;
-
- ior.io_Command = DNCMD_CLOSE;
- ior.io_Unit = (void *)chan->chan;
- ior.io_Offset = (long)chan;
- ior.io_Message.mn_ReplyPort = (PORT *)chan;
- PutMsg(chan->dnetport, (MSG *)&ior);
- ++chan->queued;
- chan->qlen = 0;
- WaitQueue(chan, &ior);
- while ((io = (IOSTD *)RemHead(&chan->rdylist)) || (io = (IOSTD *)GetMsg(&chan->port))) {
- io->io_Error = 1;
- ReplyMsg((MSG *)io);
- }
- DeleteChannel(chan);
- }
-
-