Annotation of 43BSD/ingres/source/libq/IIresync.c, revision 1.1

1.1     ! root        1: # include      <ingres.h>
        !             2: # include      "IIglobals.h"
        !             3: # include      <signal.h>
        !             4: # include      <sccs.h>
        !             5: 
        !             6: SCCSID(@(#)IIresync.c  8.1     12/31/84)
        !             7: 
        !             8: 
        !             9: /*
        !            10: **  RESYNCHRONIZE PIPES AFTER AN INTERRUPT
        !            11: **
        !            12: **     The pipes are all cleared out.  This routines must be called
        !            13: **     by all processes in the system simultaneously.  It should be
        !            14: **     called from the interrupt catching routine.
        !            15: */
        !            16: 
        !            17: int    IISyncs[CM_MAXPROC];
        !            18: extern exit();
        !            19: int    (*IIinterrupt)() =      exit;
        !            20: 
        !            21: IIresync()
        !            22: {
        !            23:        register int    i;
        !            24:        pb_t            pb;
        !            25:        register int    stat;
        !            26: 
        !            27:        signal(SIGINT,SIG_IGN);
        !            28: 
        !            29:        /*
        !            30:        **  Send SYNC blocks to all processes that are adjacent
        !            31:        **      in the write direction.
        !            32:        **  Arrange to ignore blocks from all processes that
        !            33:        **      are adjacent in the read direction.
        !            34:        */
        !            35: 
        !            36:        IIpb_prime(&pb, PB_SYNC);
        !            37:        for (i = 0; i < CM_MAXPROC; i++)
        !            38:        {
        !            39:                IISyncs[i]++;
        !            40: 
        !            41:                /* send SYNC to parser */
        !            42:                pb.pb_proc = 1;
        !            43:                IIpb_write(&pb);
        !            44:        }
        !            45: 
        !            46:        /* ovqp buffer flush is done in IIsetup() */
        !            47: 
        !            48:        /* Get out of a retrieve and clear errors */
        !            49:        IIin_retrieve = 0;
        !            50:        IIerrflag = 0;
        !            51:        IIndomains = IIdomains = 0;
        !            52:        IInewqry = 0;
        !            53: 
        !            54: 
        !            55:        /* reset the signal */
        !            56:        signal(SIGINT, IIresync);
        !            57:        /* allow the user to service the interrupt */
        !            58:        (*IIinterrupt)(-1);
        !            59:        /*
        !            60:        ** If IIinterupt returns the user might hang in a retrieve
        !            61:        */
        !            62: 
        !            63:        IIsyserr("Interupt returned");
        !            64: }
        !            65: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.