
/* Program generated by Cbasic 6.0.0  */
#define XSCT_CBASIC

#define SCT_VERSION_6_0
#define XENABLE_VERSION_CHECK

#include "scttypes.h"
#ifdef XINCLUDE_HS_FILE
#include "Concuro.hs"
#endif
XSYSTEMVARS
#ifdef XCTRACE
static char  xFileName[] = "C:\\temp\\LAB8Concurency3\\Concuro.c";
#endif

/*************************************************************************
**                SECTION Types and Forward references                  **
*************************************************************************/

/*****
* SYSTEM Concuro
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy,4,1,8)
******/
extern XCONST struct xSystemIdStruct ySysR_z_Concuro;

/*****
* BLOCK Producers
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk,4,1,7)
******/
extern XCONST struct xBlockIdStruct yBloR_z0_Producers;

/*****
* SYNTYPE iLikeToWrite  (TYPE section)
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),8,9)
******/
#ifndef XTNOUSE_iLikeToWrite
extern tSDLGenInfo ySDL_z010_iLikeToWrite;
#endif
typedef SDL_Integer  z010_iLikeToWrite;

/*****
* SYNTYPE babaAuRum  (TYPE section)
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),12,9)
******/
#ifndef XTNOUSE_babaAuRum
extern tSDLGenInfo ySDL_z011_babaAuRum;
#endif
typedef SDL_Duration  z011_babaAuRum;

/*****
* SYNTYPE iLikeToWrite  (HEADING section)
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),8,9)
******/
#ifndef XOPTSORT
extern XCONST struct xSortIdStruct ySrtR_z010_iLikeToWrite;
#define ySrtN_z010_iLikeToWrite  (&ySrtR_z010_iLikeToWrite)
#endif

#define yAssF_z010_iLikeToWrite(V,E,A)  yAssF_SDL_Integer(V,E,A)
#define yEqF_z010_iLikeToWrite(Expr1,Expr2)  yEqF_SDL_Integer(Expr1,Expr2)
#define yNEqF_z010_iLikeToWrite(Expr1,Expr2)  yNEqF_SDL_Integer(Expr1,Expr2)
#define yMkAddr_z010_iLikeToWrite(Expr1,Expr2) yMkAddr_SDL_Integer(yTstA_z010_iLikeToWrite(Expr1),Expr2)
#ifdef XTESTF
extern xbool  yTest_z010_iLikeToWrite (void *);
#endif
#ifdef XERANGE
extern z010_iLikeToWrite yTstA_z010_iLikeToWrite (z010_iLikeToWrite);
#else
#define yTstA_z010_iLikeToWrite(yExpr)  yExpr
#endif
#ifndef ANY_z010_iLikeToWrite
#define ANY_z010_iLikeToWrite (z010_iLikeToWrite)(SDL_INTEGER_LIT(0) + \
  GETINTRAND%(SDL_INTEGER_LIT(100)+1))
#endif

/*****
* SYNTYPE babaAuRum  (HEADING section)
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),12,9)
******/
#ifndef XOPTSORT
extern XCONST struct xSortIdStruct ySrtR_z011_babaAuRum;
#define ySrtN_z011_babaAuRum  (&ySrtR_z011_babaAuRum)
#endif

#define yAssF_z011_babaAuRum(V,E,A)  yAssF_SDL_Duration(V,E,A)
#define yEqF_z011_babaAuRum(Expr1,Expr2)  yEqF_SDL_Duration(Expr1,Expr2)
#define yNEqF_z011_babaAuRum(Expr1,Expr2)  yNEqF_SDL_Duration(Expr1,Expr2)
#define yMkAddr_z011_babaAuRum(Expr1,Expr2) yMkAddr_SDL_Duration(yTstA_z011_babaAuRum(Expr1),Expr2)
#ifdef XTESTF
extern xbool  yTest_z011_babaAuRum (void *);
#endif
#ifdef XERANGE
extern z011_babaAuRum yTstA_z011_babaAuRum (z011_babaAuRum);
#else
#define yTstA_z011_babaAuRum(yExpr)  yExpr
#endif
#ifndef ANY_z011_babaAuRum
#define ANY_z011_babaAuRum ANY_for_syntype_babaAuRum_not_implemented
#endif

/*****
* PROCESS Producer
* <<SYSTEM Concuro/BLOCK Producers>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4,1,9)
******/
extern XCONST XSIGTYPE yPrsS_z01_Producer[];
extern XCONST xStateIdNode yPrsT_z01_Producer[];
extern XCONST struct xPrsIdStruct yPrsR_z01_Producer;
#define yPrsN_z01_Producer  (&yPrsR_z01_Producer)
#ifdef XCOVERAGE
extern long int yPrsC_z01_Producer[];
#endif
YPAD_PROTOTYPE(yPAD_z01_Producer)
extern XCONST struct xSignalIdStruct ySigR_z01_Producer;
#define ySigN_z01_Producer  (&ySigR_z01_Producer)
typedef struct {
    SIGNAL_VARS
    STARTUP_VARS
} yPDef_z01_Producer;
typedef yPDef_z01_Producer  *yPDP_z01_Producer;
XPROCESSDEF_H(Producer,"Producer",z01_Producer,yPAD_z01_Producer, \
  yVDef_z01_Producer)
#ifndef XOPTCHAN
extern XCONST xIdNode yPrsO_z01_Producer[];
#endif
#ifdef XBREAKBEFORE
#define ySym_z01_Producer  14
extern char * yRef_z01_Producer (int, xSymbolType *);
#endif
typedef struct {
    PROCESS_VARS
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),3,1) */
    SDL_Duration z015_someTime;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),4,1) */
    SDL_Integer z016_myID;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),5,1) */
    SDL_Integer z017_numberToWrite;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),6,1) */
    SDL_PId z018_mahPID;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),1,7) */
    DEF_TIMER_VAR(yTim_walkingTime)
} yVDef_z01_Producer;
typedef yVDef_z01_Producer  *yVDP_z01_Producer;
extern void yFree_z01_Producer (void *);

/*****
* STATE SiDLing
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70),1,1)
******/
#define z012_SiDLing  1
extern XCONST struct xStateIdStruct yStaR_z012_SiDLing;
#define yStaN_z012_SiDLing  (&yStaR_z012_SiDLing)

/*****
* STATE ForcedToWait
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125),1,1)
******/
#define z013_ForcedToWait  2
extern XCONST struct xStateIdStruct yStaR_z013_ForcedToWait;
#define yStaN_z013_ForcedToWait  (&yStaR_z013_ForcedToWait)

/*****
* TIMER walkingTime
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),1,7)
******/
extern XCONST struct xSignalIdStruct ySigR_z014_walkingTime;
#define ySigN_z014_walkingTime  (&ySigR_z014_walkingTime)

/*****
* DCL someTime
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),3,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z015_someTime;
#endif

/*****
* DCL myID
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),4,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z016_myID;
#endif

/*****
* DCL numberToWrite
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),5,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z017_numberToWrite;
#endif

/*****
* DCL mahPID
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),6,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z018_mahPID;
#endif

/*****
* SIGNALROUTE ProducerLine1
* <<SYSTEM Concuro/BLOCK Producers>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),119(42,42),1,1)
******/
#ifndef XOPTCHAN
extern XCONST xIdNode yChaO_z02_ProducerLine1[];
extern XCONST xIdNode yChaOR_z02_ProducerLine1[];
extern XCONST struct xChannelIdStruct yChaR_z02_ProducerLine1;
extern XCONST struct xChannelIdStruct yChaRR_z02_ProducerLine1;
#define yChaN_z02_ProducerLine1  (&yChaR_z02_ProducerLine1)
#endif

/*****
* BLOCK ConcuroBlock
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk,4,1,7)
******/
extern XCONST struct xBlockIdStruct yBloR_z1_ConcuroBlock;

/*****
* PROCESS Io
* <<SYSTEM Concuro/BLOCK ConcuroBlock>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4,1,9)
******/
extern XCONST XSIGTYPE yPrsS_z13_Io[];
extern XCONST xStateIdNode yPrsT_z13_Io[];
extern XCONST struct xPrsIdStruct yPrsR_z13_Io;
#define yPrsN_z13_Io  (&yPrsR_z13_Io)
#ifdef XCOVERAGE
extern long int yPrsC_z13_Io[];
#endif
YPAD_PROTOTYPE(yPAD_z13_Io)
extern XCONST struct xSignalIdStruct ySigR_z13_Io;
#define ySigN_z13_Io  (&ySigR_z13_Io)
typedef struct {
    SIGNAL_VARS
    STARTUP_VARS
} yPDef_z13_Io;
typedef yPDef_z13_Io  *yPDP_z13_Io;
XPROCESSDEF_H(Io,"Io",z13_Io,yPAD_z13_Io,yVDef_z13_Io)
#ifndef XOPTCHAN
extern XCONST xIdNode yPrsO_z13_Io[];
#endif
#ifdef XBREAKBEFORE
#define ySym_z13_Io  9
extern char * yRef_z13_Io (int, xSymbolType *);
#endif
typedef struct {
    PROCESS_VARS
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),2,1) */
    SDL_Integer z132_numberWritten;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),3,1) */
    SDL_Integer z133_writeID;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),4,1) */
    SDL_PId z134_writePID;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),5,1) */
    SDL_Integer z135_readID;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),6,1) */
    SDL_PId z136_readPID;
} yVDef_z13_Io;
typedef yVDef_z13_Io  *yVDP_z13_Io;
extern void yFree_z13_Io (void *);

/*****
* STATE Phase1
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35),1,1)
******/
#define z130_Phase1  1
extern XCONST struct xStateIdStruct yStaR_z130_Phase1;
#define yStaN_z130_Phase1  (&yStaR_z130_Phase1)

/*****
* STATE Phase2
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110),1,1)
******/
#define z131_Phase2  2
extern XCONST struct xStateIdStruct yStaR_z131_Phase2;
#define yStaN_z131_Phase2  (&yStaR_z131_Phase2)

/*****
* DCL numberWritten
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),2,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z132_numberWritten;
#endif

/*****
* DCL writeID
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),3,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z133_writeID;
#endif

/*****
* DCL writePID
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),4,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z134_writePID;
#endif

/*****
* DCL readID
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),5,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z135_readID;
#endif

/*****
* DCL readPID
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),6,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z136_readPID;
#endif

/*****
* SIGNALROUTE ProduceMe
* <<SYSTEM Concuro/BLOCK ConcuroBlock>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),197(95,47),1,1)
******/
#ifndef XOPTCHAN
extern XCONST xIdNode yChaO_z14_ProduceMe[];
extern XCONST xIdNode yChaOR_z14_ProduceMe[];
extern XCONST struct xChannelIdStruct yChaR_z14_ProduceMe;
extern XCONST struct xChannelIdStruct yChaRR_z14_ProduceMe;
#define yChaN_z14_ProduceMe  (&yChaR_z14_ProduceMe)
#endif

/*****
* SIGNALROUTE LineOut
* <<SYSTEM Concuro/BLOCK ConcuroBlock>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),188(45,97),1,1)
******/
#ifndef XOPTCHAN
extern XCONST xIdNode yChaO_z15_LineOut[];
extern XCONST xIdNode yChaOR_z15_LineOut[];
extern XCONST struct xChannelIdStruct yChaR_z15_LineOut;
extern XCONST struct xChannelIdStruct yChaRR_z15_LineOut;
#define yChaN_z15_LineOut  (&yChaR_z15_LineOut)
#endif

/*****
* SIGNALROUTE ConsumeMe
* <<SYSTEM Concuro/BLOCK ConcuroBlock>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),206(92,157),1,1)
******/
#ifndef XOPTCHAN
extern XCONST xIdNode yChaO_z16_ConsumeMe[];
extern XCONST xIdNode yChaOR_z16_ConsumeMe[];
extern XCONST struct xChannelIdStruct yChaR_z16_ConsumeMe;
extern XCONST struct xChannelIdStruct yChaRR_z16_ConsumeMe;
#define yChaN_z16_ConsumeMe  (&yChaR_z16_ConsumeMe)
#endif

/*****
* BLOCK Consumers
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk,4,1,7)
******/
extern XCONST struct xBlockIdStruct yBloR_z2_Consumers;

/*****
* PROCESS Consumer
* <<SYSTEM Concuro/BLOCK Consumers>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4,1,9)
******/
extern XCONST XSIGTYPE yPrsS_z21_Consumer[];
extern XCONST xStateIdNode yPrsT_z21_Consumer[];
extern XCONST struct xPrsIdStruct yPrsR_z21_Consumer;
#define yPrsN_z21_Consumer  (&yPrsR_z21_Consumer)
#ifdef XCOVERAGE
extern long int yPrsC_z21_Consumer[];
#endif
YPAD_PROTOTYPE(yPAD_z21_Consumer)
extern XCONST struct xSignalIdStruct ySigR_z21_Consumer;
#define ySigN_z21_Consumer  (&ySigR_z21_Consumer)
typedef struct {
    SIGNAL_VARS
    STARTUP_VARS
} yPDef_z21_Consumer;
typedef yPDef_z21_Consumer  *yPDP_z21_Consumer;
XPROCESSDEF_H(Consumer,"Consumer",z21_Consumer,yPAD_z21_Consumer, \
  yVDef_z21_Consumer)
#ifndef XOPTCHAN
extern XCONST xIdNode yPrsO_z21_Consumer[];
#endif
#ifdef XBREAKBEFORE
#define ySym_z21_Consumer  12
extern char * yRef_z21_Consumer (int, xSymbolType *);
#endif
typedef struct {
    PROCESS_VARS
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),3,1) */
    SDL_Duration z213_theseTimes;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),4,1) */
    SDL_Integer z214_stuffRead;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),5,1) */
    SDL_Integer z215_myID;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),6,1) */
    SDL_PId z216_mahPID;
                /* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),1,7) */
    DEF_TIMER_VAR(yTim_coolTimes)
} yVDef_z21_Consumer;
typedef yVDef_z21_Consumer  *yVDP_z21_Consumer;
extern void yFree_z21_Consumer (void *);

/*****
* STATE SiDLing
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75),1,1)
******/
#define z210_SiDLing  1
extern XCONST struct xStateIdStruct yStaR_z210_SiDLing;
#define yStaN_z210_SiDLing  (&yStaR_z210_SiDLing)

/*****
* STATE ForcedWait
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135),1,1)
******/
#define z211_ForcedWait  2
extern XCONST struct xStateIdStruct yStaR_z211_ForcedWait;
#define yStaN_z211_ForcedWait  (&yStaR_z211_ForcedWait)

/*****
* TIMER coolTimes
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),1,7)
******/
extern XCONST struct xSignalIdStruct ySigR_z212_coolTimes;
#define ySigN_z212_coolTimes  (&ySigR_z212_coolTimes)

/*****
* DCL theseTimes
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),3,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z213_theseTimes;
#endif

/*****
* DCL stuffRead
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),4,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z214_stuffRead;
#endif

/*****
* DCL myID
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),5,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z215_myID;
#endif

/*****
* DCL mahPID
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),6,1)
******/
#ifndef XOPTDCL
extern XCONST struct xVarIdStruct yVarR_z216_mahPID;
#endif

/*****
* SIGNALROUTE ConsumerLine1
* <<SYSTEM Concuro/BLOCK Consumers>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),119(37,50),1,1)
******/
#ifndef XOPTCHAN
extern XCONST xIdNode yChaO_z22_ConsumerLine1[];
extern XCONST xIdNode yChaOR_z22_ConsumerLine1[];
extern XCONST struct xChannelIdStruct yChaR_z22_ConsumerLine1;
extern XCONST struct xChannelIdStruct yChaRR_z22_ConsumerLine1;
#define yChaN_z22_ConsumerLine1  (&yChaR_z22_ConsumerLine1)
#endif

/*****
* CHANNEL ProducerDongle
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),140(130,72),1,1)
******/
#ifndef XOPTCHAN
extern XCONST xIdNode yChaO_z3_ProducerDongle[];
extern XCONST xIdNode yChaOR_z3_ProducerDongle[];
extern XCONST struct xChannelIdStruct yChaR_z3_ProducerDongle;
extern XCONST struct xChannelIdStruct yChaRR_z3_ProducerDongle;
#define yChaN_z3_ProducerDongle  (&yChaR_z3_ProducerDongle)
#endif

/*****
* CHANNEL ThisWayOrTheHighway
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),122(45,102),1,1)
******/
#ifndef XOPTCHAN
extern XCONST xIdNode yChaO_z4_ThisWayOrTheHighway[];
extern XCONST xIdNode yChaOR_z4_ThisWayOrTheHighway[];
extern XCONST struct xChannelIdStruct yChaR_z4_ThisWayOrTheHighway;
extern XCONST struct xChannelIdStruct yChaRR_z4_ThisWayOrTheHighway;
#define yChaN_z4_ThisWayOrTheHighway  (&yChaR_z4_ThisWayOrTheHighway)
#ifdef XMULTIPLESYSTEMS
extern XCONST xIdNode yConnIn_Concuro_ThisWayOrTheHighway[];
extern XCONST xIdNode yConnOut_Concuro_ThisWayOrTheHighway[];
extern XCONST struct xChannelIdStruct yGateIn_Concuro_ThisWayOrTheHighway;
extern XCONST struct xChannelIdStruct yGateOut_Concuro_ThisWayOrTheHighway;
#endif
#endif

/*****
* CHANNEL ConsumerDongle
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),149(132,152),1,1)
******/
#ifndef XOPTCHAN
extern XCONST xIdNode yChaO_z5_ConsumerDongle[];
extern XCONST xIdNode yChaOR_z5_ConsumerDongle[];
extern XCONST struct xChannelIdStruct yChaR_z5_ConsumerDongle;
extern XCONST struct xChannelIdStruct yChaRR_z5_ConsumerDongle;
#define yChaN_z5_ConsumerDongle  (&yChaR_z5_ConsumerDongle)
#endif

/*****
* SIGNAL requestWrite
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),2,1)
******/
extern XCONST struct xSignalIdStruct ySigR_z6_requestWrite;
#define ySigN_z6_requestWrite  (&ySigR_z6_requestWrite)
typedef struct {
    SIGNAL_VARS
    SDL_Integer  Param1;
    SDL_Integer  Param2;
    SDL_PId  Param3;
} yPDef_z6_requestWrite;
typedef yPDef_z6_requestWrite  *yPDP_z6_requestWrite;

/*****
* SIGNAL approveWrite
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),3,1)
******/
extern XCONST struct xSignalIdStruct ySigR_z7_approveWrite;
#define ySigN_z7_approveWrite  (&ySigR_z7_approveWrite)

/*****
* SIGNAL requestRead
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),4,1)
******/
extern XCONST struct xSignalIdStruct ySigR_z8_requestRead;
#define ySigN_z8_requestRead  (&ySigR_z8_requestRead)
typedef struct {
    SIGNAL_VARS
    SDL_Integer  Param1;
    SDL_PId  Param2;
} yPDef_z8_requestRead;
typedef yPDef_z8_requestRead  *yPDP_z8_requestRead;

/*****
* SIGNAL approveRead
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),5,1)
******/
extern XCONST struct xSignalIdStruct ySigR_z9_approveRead;
#define ySigN_z9_approveRead  (&ySigR_z9_approveRead)
typedef struct {
    SIGNAL_VARS
    SDL_Integer  Param1;
} yPDef_z9_approveRead;
typedef yPDef_z9_approveRead  *yPDP_z9_approveRead;

/*****
* SIGNAL consumerXReadItemY
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),6,1)
******/
extern XCONST struct xSignalIdStruct ySigR_zA_consumerXReadItemY;
#define ySigN_zA_consumerXReadItemY  (&ySigR_zA_consumerXReadItemY)
typedef struct {
    SIGNAL_VARS
    SDL_Integer  Param1;
    SDL_Integer  Param2;
} yPDef_zA_consumerXReadItemY;
typedef yPDef_zA_consumerXReadItemY  *yPDP_zA_consumerXReadItemY;

/*****
* SIGNAL producerXWroteItemY
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),7,1)
******/
extern XCONST struct xSignalIdStruct ySigR_zB_producerXWroteItemY;
#define ySigN_zB_producerXWroteItemY  (&ySigR_zB_producerXWroteItemY)
typedef struct {
    SIGNAL_VARS
    SDL_Integer  Param1;
    SDL_Integer  Param2;
} yPDef_zB_producerXWroteItemY;
typedef yPDef_zB_producerXWroteItemY  *yPDP_zB_producerXWroteItemY;

/*************************************************************************
**                #CODE directives, #HEADING sections                   **
*************************************************************************/

/*************************************************************************
**                  #CODE directives, #BODY sections                    **
*************************************************************************/

/*************************************************************************
**                  SECTION Variables and Functions                     **
*************************************************************************/

/*****
* SYSTEM Concuro
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy,4,1,8)
******/
XCONST struct xSystemIdStruct ySysR_z_Concuro = {xSystemEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&xSymbolTableIdRec, "Concuro" XCOMMON_EXTRAS,
  (xIdNode *)0, (xPrdIdNode *)0, (xSystemIdNode)0 xTrace(-1) xGRTrace(-1)
  xMSCETrace(-1) XSYS_EXTRAS};

/*****
* ENV
******/
#ifndef XMULTIPLESYSTEMS
#ifndef XOPTCHAN
xIdNode yEnvO_env[] = {(xIdNode)&yChaRR_z4_ThisWayOrTheHighway,
  (xIdNode)0  XTRACHANNELLIST};
#endif
#endif

/*****
* BLOCK Producers
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk,4,1,7)
******/
XCONST struct xBlockIdStruct yBloR_z0_Producers = {xBlockEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "Producers" XCOMMON_EXTRAS,
  (xBlockIdNode)0, (xIdNode *)0, (xPrdIdNode *)0, (xViewListRec *)0,
  (xViewIndexRec *)0, 1 xTrace(-1) xGRTrace(-1) xMSCETrace(-1) xMSCETrace(0)
  XBLO_EXTRAS};
#ifndef XOPTCHAN
XCONST xIdNode yChaOR_z3_ProducerDongle[] =
  {(xIdNode)&yChaRR_z02_ProducerLine1, (xIdNode)0};
#endif

/*****
* SYNTYPE iLikeToWrite  (BODY section)
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),8,9)
******/

/* *** iLikeToWrite *** */
#ifndef XTNOUSE_iLikeToWrite
tSDLGenInfo ySDL_z010_iLikeToWrite = {type_SDL_Syntype, 0,
  (xptrint)sizeof(z010_iLikeToWrite) T_SDL_OPFUNCS(0) T_SDL_EXTRA_VALUE
  T_SDL_Names("iLikeToWrite") xRaWF((xIdNode)&yPrsR_z01_Producer)
  xRaWF(&ySrtR_z010_iLikeToWrite), (tSDLTypeInfo *)&ySDL_SDL_Integer};
#endif
#ifndef XOPTSORT
XCONST struct xSortIdStruct ySrtR_z010_iLikeToWrite = {xSortEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "iLikeToWrite" XCOMMON_EXTRAS
  xFreF(0) xAssF(0) xEqF(0) xTestF(yTest_z010_iLikeToWrite),
  (xptrint)sizeof(z010_iLikeToWrite), xSyntype, &xSrtR_SDL_Integer,
  &xSrtR_SDL_Integer, SDL_INTEGER_LIT(0), SDL_INTEGER_LIT(100), 0, 0
  xRaWF((tSDLTypeInfo *)&ySDL_z010_iLikeToWrite) XSRT_EXTRAS};
#endif

/*-------------------TEST-------------------*/
#ifdef XTESTF
xbool yTest_z010_iLikeToWrite(void * yExpr)
{
  {
    if (xLE_SDL_Integer(SDL_INTEGER_LIT(0), *(z010_iLikeToWrite *)yExpr))
      if (xLE_SDL_Integer(*(z010_iLikeToWrite *)yExpr, SDL_INTEGER_LIT(100)))
        return (xbool)1;
  }
  return (xbool)0;
}
#endif

/*-------------------TSTA-------------------*/
#ifdef XERANGE
z010_iLikeToWrite yTstA_z010_iLikeToWrite(z010_iLikeToWrite yExpr)
{
  if (! yTest_z010_iLikeToWrite((void *)&yExpr) )
    xErrorSubrange((tSDLTypeInfo *)&ySDL_z010_iLikeToWrite, (void *)&yExpr);
  return yExpr;
}
#endif

/*****
* SYNTYPE babaAuRum  (BODY section)
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),12,9)
******/

/* *** babaAuRum *** */
#ifndef XTNOUSE_babaAuRum
tSDLGenInfo ySDL_z011_babaAuRum = {type_SDL_Syntype, 0,
  (xptrint)sizeof(z011_babaAuRum) T_SDL_OPFUNCS(0) T_SDL_EXTRA_VALUE
  T_SDL_Names("babaAuRum") xRaWF((xIdNode)&yPrsR_z01_Producer)
  xRaWF(&ySrtR_z011_babaAuRum), (tSDLTypeInfo *)&ySDL_SDL_Duration};
#endif
#ifndef XOPTSORT
XCONST struct xSortIdStruct ySrtR_z011_babaAuRum = {xSortEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "babaAuRum" XCOMMON_EXTRAS xFreF(0)
  xAssF(0) xEqF(xEq_SDL_Duration) xTestF(yTest_z011_babaAuRum),
  (xptrint)sizeof(z011_babaAuRum), xSyntype, &xSrtR_SDL_Duration,
  &xSrtR_SDL_Duration, 0, 0, 0, 0 xRaWF((tSDLTypeInfo *)&ySDL_z011_babaAuRum)
  XSRT_EXTRAS};
#endif

/*-------------------TEST-------------------*/
#ifdef XTESTF
xbool yTest_z011_babaAuRum(void * yExpr)
{
  {
    if (xLE_SDL_Duration(SDL_DURATION_LIT(500.0, 500, 0),
      *(z011_babaAuRum *)yExpr))
      if (xLE_SDL_Duration(*(z011_babaAuRum *)yExpr,
      SDL_DURATION_LIT(3000.0, 3000, 0)))
        return (xbool)1;
  }
  return (xbool)0;
}
#endif

/*-------------------TSTA-------------------*/
#ifdef XERANGE
z011_babaAuRum yTstA_z011_babaAuRum(z011_babaAuRum yExpr)
{
  if (! yTest_z011_babaAuRum((void *)&yExpr) )
    xErrorSubrange((tSDLTypeInfo *)&ySDL_z011_babaAuRum, (void *)&yExpr);
  return yExpr;
}
#endif

/*****
* PROCESS Producer
* <<SYSTEM Concuro/BLOCK Producers>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4,1,9)
******/
#ifdef XCOVERAGE
long int yPrsC_z01_Producer[ySym_z01_Producer+1];
#endif
XCONST XSIGTYPE yPrsS_z01_Producer[] = {SIGNAL_NAME(approveWrite,
  &ySigR_z7_approveWrite), SIGNAL_NAME(walkingTime, &ySigR_z014_walkingTime),
  (XSIGTYPE)0};
XCONST xStateIdNode yPrsT_z01_Producer[] = {&xStartStateIdRec,
  &yStaR_z012_SiDLing, &yStaR_z013_ForcedToWait};
static XPRSNODE yPrsA_z01_Producer = (XPRSNODE)0;
static XPRSNODE yPrsB_z01_Producer = (XPRSNODE)0;
XCONST struct xPrsIdStruct yPrsR_z01_Producer = {xProcessEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "Producer" XCOMMON_EXTRAS,
  yPrsT_z01_Producer, yPrsS_z01_Producer xService(0) xOptChan(
  yPrsO_z01_Producer), -1 xNrInst(1) xNrInst(1), &yPrsB_z01_Producer,
  (xptrint)sizeof(yVDef_z01_Producer) xPrsPrioPar(xDefaultPrioProcess),
  &yPrsA_z01_Producer xTrace(-1) xGRTrace(-1) xBreakB(yRef_z01_Producer)
  xBreakB(ySym_z01_Producer) xBreakB(2) xMSCETrace(-1)
  xCoverage(yPrsC_z01_Producer) xCoverage(0) xCoverage(0), yPAD_z01_Producer,
  yFree_z01_Producer, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr,4,1,9)")
  xThreadName(0) xThreadName(0) XPRS_EXTRAS(z01_Producer)};
static xSignalNode ySigA_z01_Producer = (xSignalNode)0;
XCONST struct xSignalIdStruct ySigR_z01_Producer = {xStartUpSignalEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers xIdNames("-")
  XCOMMON_EXTRAS, (xptrint)sizeof(yPDef_z01_Producer), &ySigA_z01_Producer, 0
  xFreS(0) SIGCODE(STARTUPSIGNAL)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr,4,1,9)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};
XPROCESSDEF_C(Producer,"Producer",z01_Producer,yPAD_z01_Producer,
  yVDef_z01_Producer)
#ifndef XOPTCHAN
XCONST xIdNode yPrsO_z01_Producer[] = {(xIdNode)&yChaR_z02_ProducerLine1,
  (xIdNode)0};
#endif
void yFree_z01_Producer(void *yVarP)
{
}

/*+++++
* GR ref function for process Producer
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4,1,17)
++++++*/
#ifdef XBREAKBEFORE
char * yRef_z01_Producer (int SymbolNo, xSymbolType *SymbolType)
{
  switch (SymbolNo) {
    case 0: *SymbolType = xsStart;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),119(65,15),1,1)";
    case 1: *SymbolType = xsInput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),143(60,90),1,1)";
    case 2: *SymbolType = xsInput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),158(60,140),1,1)";
    case 3: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(45,40),1,1)";
    case 4: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(45,40),2,1)";
    case 5: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(45,40),3,1)";
    case 6: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(45,40),4,1)";
    case 7: *SymbolType = xsSet;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),125(45,40),5,1)";
    case 8: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),134(65,70),1,1)";
    case 9: *SymbolType = xsOutput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),149(35,110),1,1)";
    case 10: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),167(60,125),1,1)";
    case 11: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),179(45,160),1,1)";
    case 12: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),179(45,160),2,1)";
    case 13: *SymbolType = xsSet;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),179(45,160),3,1)";
    case 14: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),176(65,185),1,1)";
    default : *SymbolType = xsNoSuchSymbolType; return "";
  }
}
#endif

/*+++++
* Function for process Producer
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr,4,1,17)
++++++*/
YPAD_FUNCTION(yPAD_z01_Producer)
{
  YPAD_YSVARP
  YPAD_YVARP(yVDef_z01_Producer)
  YPAD_TEMP_VARS
  YPRSNAME_VAR("Producer")

  BEGIN_PAD(yVDef_z01_Producer)

  LOOP_LABEL
  switch (yVarP->RestartAddress) {

/*-----
* START
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),119(65,15),1,1)
------*/
  case 0:
    BEGIN_START_TRANSITION(yPDef_z01_Producer)
    XAT_FIRST_SYMBOL(0)
    yAssF_SDL_PId(yVarP->z018_mahPID, SDL_NULL, XASS_MR_ASS_NF);
    INIT_TIMER_VAR(yVarP->yTim_walkingTime)
    XBETWEEN_SYMBOLS(3, 879)

/*-----
* ASSIGNMENT myID := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(45,40),1,1)
------*/
#ifdef XCASELABELS
  case 3:
#endif
    yAssF_SDL_Integer(yVarP->z016_myID, SDL_INTEGER_LIT(1), XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("myID := ", &(yVarP->z016_myID),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "myID := ", &(yVarP->z016_myID),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
    XBETWEEN_STMTS(4, 897)

/*-----
* ASSIGNMENT numberToWrite := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(45,40),2,1)
------*/
#ifdef XCASELABELS
  case 4:
#endif
    yAssF_SDL_Integer(yVarP->z017_numberToWrite, SDL_INTEGER_LIT(7),
      XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("numberToWrite := ", &(yVarP->z017_numberToWrite),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "numberToWrite := ", &(yVarP->z017_numberToWrite),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
    XBETWEEN_STMTS(5, 916)

/*-----
* ASSIGNMENT someTime := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(45,40),3,1)
------*/
#ifdef XCASELABELS
  case 5:
#endif
    yAssF_SDL_Duration(yVarP->z015_someTime, SDL_DURATION_LIT(1000.0, 1000, 0),
      XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("someTime := ", &(yVarP->z015_someTime),
      (tSDLTypeInfo *)&ySDL_SDL_Duration);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "someTime := ", &(yVarP->z015_someTime),
      (tSDLTypeInfo *)&ySDL_SDL_Duration);
#endif
    XBETWEEN_STMTS(6, 935)

/*-----
* ASSIGNMENT mahPID := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(45,40),4,1)
------*/
#ifdef XCASELABELS
  case 6:
#endif
    yAssF_SDL_PId(yVarP->z018_mahPID, SDL_SELF, XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("mahPID := ", &(yVarP->z018_mahPID),
      (tSDLTypeInfo *)&ySDL_SDL_PId);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "mahPID := ", &(yVarP->z018_mahPID),
      (tSDLTypeInfo *)&ySDL_SDL_PId);
#endif
    XBETWEEN_STMTS(7, 953)

/*-----
* SET walkingTime
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),125(45,40),5,1)
------*/
#ifdef XCASELABELS
  case 7:
#endif
    SDL_SET_DUR(xPlus_SDL_Time(SDL_NOW, yVarP->z015_someTime), yVarP->
      z015_someTime, walkingTime, ySigN_z014_walkingTime,
      yVarP->yTim_walkingTime, "walkingTime")
    XBETWEEN_SYMBOLS(8, 965)

/*-----
* NEXTSTATE SiDLing
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70),1,1)
------*/
#ifdef XCASELABELS
  case 8:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(SiDLing, z012_SiDLing, "SiDLing")

/*-----
* INPUT walkingTime
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),143(60,90),1,1)
------*/
  case 1:
    XDEBUG_LABEL(SiDLing_walkingTime)
    XAT_FIRST_SYMBOL(1)
    XOS_TRACE_INPUT("walkingTime")
    INPUT_TIMER_VAR(yVarP->yTim_walkingTime)
    XBETWEEN_SYMBOLS(9, 986)

/*-----
* OUTPUT requestWrite
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),149(35,110),1,1)
------*/
#ifdef XCASELABELS
  case 9:
#endif
    ALLOC_SIGNAL_PAR(requestWrite, ySigN_z6_requestWrite, TO_PROCESS(Io,
      yPrsN_z13_Io), yPDef_z6_requestWrite)
    SIGNAL_ALLOC_ERROR
    yAssF_SDL_Integer(((yPDef_z6_requestWrite *)OUTSIGNAL_DATA_PTR)->Param1,
      yVarP->z016_myID, XASS_MR_ASS_NF);
    yAssF_SDL_Integer(((yPDef_z6_requestWrite *)OUTSIGNAL_DATA_PTR)->Param2,
      yVarP->z017_numberToWrite, XASS_MR_ASS_NF);
    yAssF_SDL_PId(((yPDef_z6_requestWrite *)OUTSIGNAL_DATA_PTR)->Param3, yVarP->
      z018_mahPID, XASS_MR_ASS_NF);
    SDL_2OUTPUT_COMPUTED_TO(xDefaultPrioSignal, (xIdNode *)0, requestWrite,
      ySigN_z6_requestWrite, TO_PROCESS(Io, yPrsN_z13_Io),
      sizeof(yPDef_z6_requestWrite), "requestWrite")
    SIGNAL_ALLOC_ERROR_END
    XBETWEEN_SYMBOLS(10, 1008)

/*-----
* NEXTSTATE ForcedToWait
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125),1,1)
------*/
#ifdef XCASELABELS
  case 10:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(ForcedToWait, z013_ForcedToWait, "ForcedToWait")

/*-----
* INPUT approveWrite
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),158(60,140),1,1)
------*/
  case 2:
    XDEBUG_LABEL(ForcedToWait_approveWrite)
    XAT_FIRST_SYMBOL(2)
    XOS_TRACE_INPUT("approveWrite")
    XBETWEEN_SYMBOLS(11, 1028)

/*-----
* ASSIGNMENT numberToWrite := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),179(45,160),1,1)
------*/
#ifdef XCASELABELS
  case 11:
#endif
    yAssF_SDL_Integer(yVarP->z017_numberToWrite, ANY_z010_iLikeToWrite,
      XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("numberToWrite := ", &(yVarP->z017_numberToWrite),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "numberToWrite := ", &(yVarP->z017_numberToWrite),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
    XBETWEEN_STMTS(12, 1047)

/*-----
* ASSIGNMENT someTime := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),179(45,160),2,1)
------*/
#ifdef XCASELABELS
  case 12:
#endif
    yAssF_SDL_Duration(yVarP->z015_someTime, ANY_z011_babaAuRum,
      XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("someTime := ", &(yVarP->z015_someTime),
      (tSDLTypeInfo *)&ySDL_SDL_Duration);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "someTime := ", &(yVarP->z015_someTime),
      (tSDLTypeInfo *)&ySDL_SDL_Duration);
#endif
    XBETWEEN_STMTS(13, 1066)

/*-----
* SET walkingTime
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),179(45,160),3,1)
------*/
#ifdef XCASELABELS
  case 13:
#endif
    SDL_SET_DUR(xPlus_SDL_Time(SDL_NOW, yVarP->z015_someTime), yVarP->
      z015_someTime, walkingTime, ySigN_z014_walkingTime,
      yVarP->yTim_walkingTime, "walkingTime")
    XBETWEEN_SYMBOLS(14, 1078)

/*-----
* NEXTSTATE SiDLing
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),176(65,185),1,1)
------*/
#ifdef XCASELABELS
  case 14:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(SiDLing, z012_SiDLing, "SiDLing")
  }
}

/*****
* STATE SiDLing
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),134(65,70),1,1)
******/
static XCONST xInputAction yStaH_z012_SiDLing[] = {xDiscard, xInput, xDiscard};
static XCONST XINPUTREFTYPE yStaI_z012_SiDLing[] = {0, 1, 0};
#ifdef XCOVERAGE
static long int yStaC_z012_SiDLing[2+1];
#endif
XCONST struct xStateIdStruct yStaR_z012_SiDLing = {xStateEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "SiDLing" XCOMMON_EXTRAS,
  z012_SiDLing, yStaH_z012_SiDLing, yStaI_z012_SiDLing, 0, 0, 0
  xCoverage(yStaC_z012_SiDLing), (xStateIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),134(65,70),1,1)")
  XSTA_EXTRAS};

/*****
* STATE ForcedToWait
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),167(60,125),1,1)
******/
static XCONST xInputAction yStaH_z013_ForcedToWait[] = {xInput, xDiscard,
  xDiscard};
static XCONST XINPUTREFTYPE yStaI_z013_ForcedToWait[] = {2, 0, 0};
#ifdef XCOVERAGE
static long int yStaC_z013_ForcedToWait[2+1];
#endif
XCONST struct xStateIdStruct yStaR_z013_ForcedToWait = {xStateEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "ForcedToWait" XCOMMON_EXTRAS,
  z013_ForcedToWait, yStaH_z013_ForcedToWait, yStaI_z013_ForcedToWait, 0, 0, 0
  xCoverage(yStaC_z013_ForcedToWait), (xStateIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),167(60,125),1,1)")
  XSTA_EXTRAS};

/*****
* TIMER walkingTime
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),1,7)
******/
XCONST struct xSignalIdStruct ySigR_z014_walkingTime = {xTimerEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "walkingTime" XCOMMON_EXTRAS,
  (xptrint)sizeof(XTIMERHEADERTYPE), 0, 0 xFreS(0) SIGCODE(walkingTime)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Producer.spr(1),128(135,15),1,7)")
  xSigPrioPar(xDefaultPrioSignal) OFFSET_TIMER_VAR(yTim_walkingTime,
  yVDef_z01_Producer) XSIG_EXTRAS};

/*****
* DCL someTime
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),3,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z015_someTime = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "someTime" XCOMMON_EXTRAS,
  &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration,
  xOffsetOf(yVDef_z01_Producer, z015_someTime), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL myID
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),4,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z016_myID = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "myID" XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yVDef_z01_Producer, z016_myID), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL numberToWrite
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),5,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z017_numberToWrite = {xVariableEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "numberToWrite"
  XCOMMON_EXTRAS, &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yVDef_z01_Producer, z017_numberToWrite), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL mahPID
* <<SYSTEM Concuro/BLOCK Producers/PROCESS Producer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producer.spr(1),128(135,15),6,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z018_mahPID = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z01_Producer, "mahPID" XCOMMON_EXTRAS,
  &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId,
  xOffsetOf(yVDef_z01_Producer, z018_mahPID), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* SIGNALROUTE ProducerLine1
* <<SYSTEM Concuro/BLOCK Producers>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Producers.sbk(1),119(42,42),1,1)
******/
#ifndef XOPTCHAN
static XCONST XSIGTYPE yChaS_z02_ProducerLine1[] = {SIGNAL_NAME(requestWrite,
  &ySigR_z6_requestWrite), (XSIGTYPE)0};
static XCONST XSIGTYPE yChaSR_z02_ProducerLine1[] = {SIGNAL_NAME(approveWrite,
  &ySigR_z7_approveWrite), (XSIGTYPE)0};
XCONST xIdNode yChaO_z02_ProducerLine1[] = {(xIdNode)&yChaR_z3_ProducerDongle,
  (xIdNode)0};
XCONST xIdNode yChaOR_z02_ProducerLine1[] = {(xIdNode)&yPrsR_z01_Producer,
  (xIdNode)0};
XCONST struct xChannelIdStruct yChaR_z02_ProducerLine1 = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine1"
  XCOMMON_EXTRAS, yChaS_z02_ProducerLine1, yChaO_z02_ProducerLine1,
  &yChaRR_z02_ProducerLine1 XCHA_EXTRAS};
XCONST struct xChannelIdStruct yChaRR_z02_ProducerLine1 = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z0_Producers, "ProducerLine1"
  XCOMMON_EXTRAS, yChaSR_z02_ProducerLine1, yChaOR_z02_ProducerLine1,
  &yChaR_z02_ProducerLine1 XCHA_EXTRAS};
#endif

/*****
* BLOCK ConcuroBlock
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk,4,1,7)
******/
XCONST struct xBlockIdStruct yBloR_z1_ConcuroBlock = {xBlockEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ConcuroBlock" XCOMMON_EXTRAS,
  (xBlockIdNode)0, (xIdNode *)0, (xPrdIdNode *)0, (xViewListRec *)0,
  (xViewIndexRec *)0, 1 xTrace(-1) xGRTrace(-1) xMSCETrace(-1) xMSCETrace(0)
  XBLO_EXTRAS};
#ifndef XOPTCHAN
XCONST xIdNode yChaO_z3_ProducerDongle[] = {(xIdNode)&yChaRR_z14_ProduceMe,
  (xIdNode)0};
XCONST xIdNode yChaOR_z4_ThisWayOrTheHighway[] = {(xIdNode)&yChaRR_z15_LineOut,
  (xIdNode)0};
XCONST xIdNode yChaO_z5_ConsumerDongle[] = {(xIdNode)&yChaRR_z16_ConsumeMe,
  (xIdNode)0};
#endif

/*****
* PROCESS Io
* <<SYSTEM Concuro/BLOCK ConcuroBlock>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4,1,9)
******/
#ifdef XCOVERAGE
long int yPrsC_z13_Io[ySym_z13_Io+1];
#endif
XCONST XSIGTYPE yPrsS_z13_Io[] = {SIGNAL_NAME(requestWrite,
  &ySigR_z6_requestWrite), SIGNAL_NAME(requestRead, &ySigR_z8_requestRead),
  (XSIGTYPE)0};
XCONST xStateIdNode yPrsT_z13_Io[] = {&xStartStateIdRec, &yStaR_z130_Phase1,
  &yStaR_z131_Phase2};
static XPRSNODE yPrsA_z13_Io = (XPRSNODE)0;
static XPRSNODE yPrsB_z13_Io = (XPRSNODE)0;
XCONST struct xPrsIdStruct yPrsR_z13_Io = {xProcessEC , (xIdNode)0, (xIdNode)0,
  (xIdNode)&yBloR_z1_ConcuroBlock, "Io" XCOMMON_EXTRAS, yPrsT_z13_Io,
  yPrsS_z13_Io xService(0) xOptChan(yPrsO_z13_Io), -1 xNrInst(1) xNrInst(1),
  &yPrsB_z13_Io, (xptrint)sizeof(yVDef_z13_Io)
  xPrsPrioPar(xDefaultPrioProcess), &yPrsA_z13_Io xTrace(-1) xGRTrace(-1)
  xBreakB(yRef_z13_Io) xBreakB(ySym_z13_Io) xBreakB(2) xMSCETrace(-1)
  xCoverage(yPrsC_z13_Io) xCoverage(0) xCoverage(0), yPAD_z13_Io, yFree_z13_Io,
  (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr,4,1,9)")
  xThreadName(0) xThreadName(0) XPRS_EXTRAS(z13_Io)};
static xSignalNode ySigA_z13_Io = (xSignalNode)0;
XCONST struct xSignalIdStruct ySigR_z13_Io = {xStartUpSignalEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock xIdNames("-") XCOMMON_EXTRAS,
  (xptrint)sizeof(yPDef_z13_Io), &ySigA_z13_Io, 0 xFreS(0)
  SIGCODE(STARTUPSIGNAL)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr,4,1,9)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};
XPROCESSDEF_C(Io,"Io",z13_Io,yPAD_z13_Io,yVDef_z13_Io)
#ifndef XOPTCHAN
XCONST xIdNode yPrsO_z13_Io[] = {(xIdNode)&yChaR_z14_ProduceMe,
  (xIdNode)&yChaR_z15_LineOut, (xIdNode)&yChaR_z16_ConsumeMe, (xIdNode)0};
#endif
void yFree_z13_Io(void *yVarP)
{
}

/*+++++
* GR ref function for process Io
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4,1,11)
++++++*/
#ifdef XBREAKBEFORE
char * yRef_z13_Io (int SymbolNo, xSymbolType *SymbolType)
{
  switch (SymbolNo) {
    case 0: *SymbolType = xsStart;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),116(60,20),1,1)";
    case 1: *SymbolType = xsInput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),128(30,50),1,1)";
    case 2: *SymbolType = xsInput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),146(35,135),1,1)";
    case 3: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),122(60,35),1,1)";
    case 4: *SymbolType = xsOutput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),137(30,70),1,1)";
    case 5: *SymbolType = xsOutput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),182(55,85),1,1)";
    case 6: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),134(60,110),1,1)";
    case 7: *SymbolType = xsOutput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),170(30,155),1,1)";
    case 8: *SymbolType = xsOutput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),191(40,170),1,1)";
    case 9: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),176(60,190),1,1)";
    default : *SymbolType = xsNoSuchSymbolType; return "";
  }
}
#endif

/*+++++
* Function for process Io
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr,4,1,11)
++++++*/
YPAD_FUNCTION(yPAD_z13_Io)
{
  YPAD_YSVARP
  YPAD_YVARP(yVDef_z13_Io)
  YPAD_TEMP_VARS
  YPRSNAME_VAR("Io")

  BEGIN_PAD(yVDef_z13_Io)

  LOOP_LABEL
  switch (yVarP->RestartAddress) {

/*-----
* START
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),116(60,20),1,1)
------*/
  case 0:
    BEGIN_START_TRANSITION(yPDef_z13_Io)
    XAT_FIRST_SYMBOL(0)
    yAssF_SDL_PId(yVarP->z134_writePID, SDL_NULL, XASS_MR_ASS_NF);
    yAssF_SDL_PId(yVarP->z136_readPID, SDL_NULL, XASS_MR_ASS_NF);
    XBETWEEN_SYMBOLS(3, 1329)

/*-----
* NEXTSTATE Phase1
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35),1,1)
------*/
#ifdef XCASELABELS
  case 3:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(Phase1, z130_Phase1, "Phase1")

/*-----
* INPUT requestWrite
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),128(30,50),1,1)
------*/
  case 1:
    XDEBUG_LABEL(Phase1_requestWrite)
    XAT_FIRST_SYMBOL(1)
    XOS_TRACE_INPUT("requestWrite")
    yAssF_SDL_Integer(yVarP->z132_numberWritten, ((yPDef_z6_requestWrite *)
      ySVarP)->Param1, XASS_AR_ASS_FR);
    yAssF_SDL_Integer(yVarP->z133_writeID, ((yPDef_z6_requestWrite *)ySVarP)->
      Param2, XASS_AR_ASS_FR);
    yAssF_SDL_PId(yVarP->z134_writePID, ((yPDef_z6_requestWrite *)ySVarP)->
      Param3, XASS_AR_ASS_FR);
    XBETWEEN_SYMBOLS(4, 1355)

/*-----
* OUTPUT producerXWroteItemY
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),137(30,70),1,1)
------*/
#ifdef XCASELABELS
  case 4:
#endif
    ALLOC_SIGNAL_PAR(producerXWroteItemY, ySigN_zB_producerXWroteItemY,
      TO_PROCESS(Env, &yEnvR_env), yPDef_zB_producerXWroteItemY)
    SIGNAL_ALLOC_ERROR
    yAssF_SDL_Integer(((yPDef_zB_producerXWroteItemY *)OUTSIGNAL_DATA_PTR)->Param1,
      SDL_INTEGER_LIT(1), XASS_MR_ASS_NF);
    yAssF_SDL_Integer(((yPDef_zB_producerXWroteItemY *)OUTSIGNAL_DATA_PTR)->Param2,
      yVarP->z132_numberWritten, XASS_MR_ASS_NF);
    SDL_2OUTPUT_COMPUTED_TO(xDefaultPrioSignal, (xIdNode *)0,
      producerXWroteItemY, ySigN_zB_producerXWroteItemY, TO_PROCESS(Env,
      &yEnvR_env), sizeof(yPDef_zB_producerXWroteItemY), "producerXWroteItemY")
    SIGNAL_ALLOC_ERROR_END
    XBETWEEN_SYMBOLS(5, 1375)

/*-----
* OUTPUT approveWrite
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),182(55,85),1,1)
------*/
#ifdef XCASELABELS
  case 5:
#endif
    ALLOC_SIGNAL(approveWrite, ySigN_z7_approveWrite, yVarP->z134_writePID,
      XSIGNALHEADERTYPE)
    SIGNAL_ALLOC_ERROR
    SDL_2OUTPUT(xDefaultPrioSignal, (xIdNode *)0, approveWrite,
      ySigN_z7_approveWrite, yVarP->z134_writePID, 0, "approveWrite")
    SIGNAL_ALLOC_ERROR_END
    XBETWEEN_SYMBOLS(6, 1390)

/*-----
* NEXTSTATE Phase2
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110),1,1)
------*/
#ifdef XCASELABELS
  case 6:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(Phase2, z131_Phase2, "Phase2")

/*-----
* INPUT requestRead
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),146(35,135),1,1)
------*/
  case 2:
    XDEBUG_LABEL(Phase2_requestRead)
    XAT_FIRST_SYMBOL(2)
    XOS_TRACE_INPUT("requestRead")
    yAssF_SDL_Integer(yVarP->z135_readID, ((yPDef_z8_requestRead *)ySVarP)->
      Param1, XASS_AR_ASS_FR);
    yAssF_SDL_PId(yVarP->z136_readPID, ((yPDef_z8_requestRead *)ySVarP)->
      Param2, XASS_AR_ASS_FR);
    XBETWEEN_SYMBOLS(7, 1414)

/*-----
* OUTPUT consumerXReadItemY
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),170(30,155),1,1)
------*/
#ifdef XCASELABELS
  case 7:
#endif
    ALLOC_SIGNAL_PAR(consumerXReadItemY, ySigN_zA_consumerXReadItemY,
      TO_PROCESS(Env, &yEnvR_env), yPDef_zA_consumerXReadItemY)
    SIGNAL_ALLOC_ERROR
    yAssF_SDL_Integer(((yPDef_zA_consumerXReadItemY *)OUTSIGNAL_DATA_PTR)->Param1,
      yVarP->z135_readID, XASS_MR_ASS_NF);
    yAssF_SDL_Integer(((yPDef_zA_consumerXReadItemY *)OUTSIGNAL_DATA_PTR)->Param2,
      yVarP->z132_numberWritten, XASS_MR_ASS_NF);
    SDL_2OUTPUT_COMPUTED_TO(xDefaultPrioSignal, (xIdNode *)0,
      consumerXReadItemY, ySigN_zA_consumerXReadItemY, TO_PROCESS(Env,
      &yEnvR_env), sizeof(yPDef_zA_consumerXReadItemY), "consumerXReadItemY")
    SIGNAL_ALLOC_ERROR_END
    XBETWEEN_SYMBOLS(8, 1434)

/*-----
* OUTPUT approveRead
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),191(40,170),1,1)
------*/
#ifdef XCASELABELS
  case 8:
#endif
    ALLOC_SIGNAL_PAR(approveRead, ySigN_z9_approveRead, yVarP->z136_readPID,
      yPDef_z9_approveRead)
    SIGNAL_ALLOC_ERROR
    yAssF_SDL_Integer(((yPDef_z9_approveRead *)OUTSIGNAL_DATA_PTR)->Param1,
      yVarP->z132_numberWritten, XASS_MR_ASS_NF);
    SDL_2OUTPUT(xDefaultPrioSignal, (xIdNode *)0, approveRead,
      ySigN_z9_approveRead, yVarP->z136_readPID, sizeof(yPDef_z9_approveRead),
      "approveRead")
    SIGNAL_ALLOC_ERROR_END
    XBETWEEN_SYMBOLS(9, 1452)

/*-----
* NEXTSTATE Phase1
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),176(60,190),1,1)
------*/
#ifdef XCASELABELS
  case 9:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(Phase1, z130_Phase1, "Phase1")
  }
}

/*****
* STATE Phase1
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),122(60,35),1,1)
******/
static XCONST xInputAction yStaH_z130_Phase1[] = {xInput, xSave, xDiscard};
static XCONST XINPUTREFTYPE yStaI_z130_Phase1[] = {1, 0, 0};
#ifdef XCOVERAGE
static long int yStaC_z130_Phase1[2+1];
#endif
XCONST struct xStateIdStruct yStaR_z130_Phase1 = {xStateEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "Phase1" XCOMMON_EXTRAS, z130_Phase1,
  yStaH_z130_Phase1, yStaI_z130_Phase1, 0, 0, 0 xCoverage(yStaC_z130_Phase1),
  (xStateIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),122(60,35),1,1)")
  XSTA_EXTRAS};

/*****
* STATE Phase2
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),134(60,110),1,1)
******/
static XCONST xInputAction yStaH_z131_Phase2[] = {xSave, xInput, xDiscard};
static XCONST XINPUTREFTYPE yStaI_z131_Phase2[] = {0, 2, 0};
#ifdef XCOVERAGE
static long int yStaC_z131_Phase2[2+1];
#endif
XCONST struct xStateIdStruct yStaR_z131_Phase2 = {xStateEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "Phase2" XCOMMON_EXTRAS, z131_Phase2,
  yStaH_z131_Phase2, yStaI_z131_Phase2, 0, 0, 0 xCoverage(yStaC_z131_Phase2),
  (xStateIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Io.spr(1),134(60,110),1,1)")
  XSTA_EXTRAS};

/*****
* DCL numberWritten
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),2,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z132_numberWritten = {xVariableEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "numberWritten"
  XCOMMON_EXTRAS, &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yVDef_z13_Io, z132_numberWritten), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL writeID
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),3,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z133_writeID = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "writeID" XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yVDef_z13_Io, z133_writeID), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL writePID
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),4,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z134_writePID = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "writePID" XCOMMON_EXTRAS,
  &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId,
  xOffsetOf(yVDef_z13_Io, z134_writePID), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL readID
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),5,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z135_readID = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "readID" XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yVDef_z13_Io, z135_readID), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL readPID
* <<SYSTEM Concuro/BLOCK ConcuroBlock/PROCESS Io>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Io.spr(1),119(130,15),6,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z136_readPID = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z13_Io, "readPID" XCOMMON_EXTRAS, &xSrtR_SDL_PId,
  (tSDLTypeInfo *)&ySDL_SDL_PId, xOffsetOf(yVDef_z13_Io, z136_readPID),
  (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* SIGNALROUTE ProduceMe
* <<SYSTEM Concuro/BLOCK ConcuroBlock>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),197(95,47),1,1)
******/
#ifndef XOPTCHAN
static XCONST XSIGTYPE yChaS_z14_ProduceMe[] = {SIGNAL_NAME(approveWrite,
  &ySigR_z7_approveWrite), (XSIGTYPE)0};
static XCONST XSIGTYPE yChaSR_z14_ProduceMe[] = {SIGNAL_NAME(requestWrite,
  &ySigR_z6_requestWrite), (XSIGTYPE)0};
XCONST xIdNode yChaO_z14_ProduceMe[] = {(xIdNode)&yChaRR_z3_ProducerDongle,
  (xIdNode)0};
XCONST xIdNode yChaOR_z14_ProduceMe[] = {(xIdNode)&yPrsR_z13_Io, (xIdNode)0};
XCONST struct xChannelIdStruct yChaR_z14_ProduceMe = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "ProduceMe"
  XCOMMON_EXTRAS, yChaS_z14_ProduceMe, yChaO_z14_ProduceMe,
  &yChaRR_z14_ProduceMe XCHA_EXTRAS};
XCONST struct xChannelIdStruct yChaRR_z14_ProduceMe = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "ProduceMe"
  XCOMMON_EXTRAS, yChaSR_z14_ProduceMe, yChaOR_z14_ProduceMe,
  &yChaR_z14_ProduceMe XCHA_EXTRAS};
#endif

/*****
* SIGNALROUTE LineOut
* <<SYSTEM Concuro/BLOCK ConcuroBlock>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),188(45,97),1,1)
******/
#ifndef XOPTCHAN
static XCONST XSIGTYPE yChaS_z15_LineOut[] = {SIGNAL_NAME(consumerXReadItemY,
  &ySigR_zA_consumerXReadItemY), SIGNAL_NAME(producerXWroteItemY,
  &ySigR_zB_producerXWroteItemY), (XSIGTYPE)0};
static XCONST XSIGTYPE yChaSR_z15_LineOut[] = {(XSIGTYPE)0};
XCONST xIdNode yChaO_z15_LineOut[] = {(xIdNode)&yChaR_z4_ThisWayOrTheHighway,
  (xIdNode)0};
XCONST xIdNode yChaOR_z15_LineOut[] = {(xIdNode)&yPrsR_z13_Io, (xIdNode)0};
XCONST struct xChannelIdStruct yChaR_z15_LineOut = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "LineOut"
  XCOMMON_EXTRAS, yChaS_z15_LineOut, yChaO_z15_LineOut, &yChaRR_z15_LineOut
  XCHA_EXTRAS};
XCONST struct xChannelIdStruct yChaRR_z15_LineOut = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "LineOut"
  XCOMMON_EXTRAS, yChaSR_z15_LineOut, yChaOR_z15_LineOut, &yChaR_z15_LineOut
  XCHA_EXTRAS};
#endif

/*****
* SIGNALROUTE ConsumeMe
* <<SYSTEM Concuro/BLOCK ConcuroBlock>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\ConcuroBlock.sbk(1),206(92,157),1,1)
******/
#ifndef XOPTCHAN
static XCONST XSIGTYPE yChaS_z16_ConsumeMe[] = {SIGNAL_NAME(approveRead,
  &ySigR_z9_approveRead), (XSIGTYPE)0};
static XCONST XSIGTYPE yChaSR_z16_ConsumeMe[] = {SIGNAL_NAME(requestRead,
  &ySigR_z8_requestRead), (XSIGTYPE)0};
XCONST xIdNode yChaO_z16_ConsumeMe[] = {(xIdNode)&yChaRR_z5_ConsumerDongle,
  (xIdNode)0};
XCONST xIdNode yChaOR_z16_ConsumeMe[] = {(xIdNode)&yPrsR_z13_Io, (xIdNode)0};
XCONST struct xChannelIdStruct yChaR_z16_ConsumeMe = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "ConsumeMe"
  XCOMMON_EXTRAS, yChaS_z16_ConsumeMe, yChaO_z16_ConsumeMe,
  &yChaRR_z16_ConsumeMe XCHA_EXTRAS};
XCONST struct xChannelIdStruct yChaRR_z16_ConsumeMe = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z1_ConcuroBlock, "ConsumeMe"
  XCOMMON_EXTRAS, yChaSR_z16_ConsumeMe, yChaOR_z16_ConsumeMe,
  &yChaR_z16_ConsumeMe XCHA_EXTRAS};
#endif

/*****
* BLOCK Consumers
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk,4,1,7)
******/
XCONST struct xBlockIdStruct yBloR_z2_Consumers = {xBlockEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "Consumers" XCOMMON_EXTRAS,
  (xBlockIdNode)0, (xIdNode *)0, (xPrdIdNode *)0, (xViewListRec *)0,
  (xViewIndexRec *)0, 1 xTrace(-1) xGRTrace(-1) xMSCETrace(-1) xMSCETrace(0)
  XBLO_EXTRAS};
#ifndef XOPTCHAN
XCONST xIdNode yChaOR_z5_ConsumerDongle[] =
  {(xIdNode)&yChaRR_z22_ConsumerLine1, (xIdNode)0};
#endif

/*****
* PROCESS Consumer
* <<SYSTEM Concuro/BLOCK Consumers>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4,1,9)
******/
#ifdef XCOVERAGE
long int yPrsC_z21_Consumer[ySym_z21_Consumer+1];
#endif
XCONST XSIGTYPE yPrsS_z21_Consumer[] = {SIGNAL_NAME(approveRead,
  &ySigR_z9_approveRead), SIGNAL_NAME(coolTimes, &ySigR_z212_coolTimes),
  (XSIGTYPE)0};
XCONST xStateIdNode yPrsT_z21_Consumer[] = {&xStartStateIdRec,
  &yStaR_z210_SiDLing, &yStaR_z211_ForcedWait};
static XPRSNODE yPrsA_z21_Consumer = (XPRSNODE)0;
static XPRSNODE yPrsB_z21_Consumer = (XPRSNODE)0;
XCONST struct xPrsIdStruct yPrsR_z21_Consumer = {xProcessEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "Consumer" XCOMMON_EXTRAS,
  yPrsT_z21_Consumer, yPrsS_z21_Consumer xService(0) xOptChan(
  yPrsO_z21_Consumer), -1 xNrInst(1) xNrInst(1), &yPrsB_z21_Consumer,
  (xptrint)sizeof(yVDef_z21_Consumer) xPrsPrioPar(xDefaultPrioProcess),
  &yPrsA_z21_Consumer xTrace(-1) xGRTrace(-1) xBreakB(yRef_z21_Consumer)
  xBreakB(ySym_z21_Consumer) xBreakB(2) xMSCETrace(-1)
  xCoverage(yPrsC_z21_Consumer) xCoverage(0) xCoverage(0), yPAD_z21_Consumer,
  yFree_z21_Consumer, (xPrsIdNode)0, (xPrdIdNode *)0, (xBlockIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr,4,1,9)")
  xThreadName(0) xThreadName(0) XPRS_EXTRAS(z21_Consumer)};
static xSignalNode ySigA_z21_Consumer = (xSignalNode)0;
XCONST struct xSignalIdStruct ySigR_z21_Consumer = {xStartUpSignalEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers xIdNames("-")
  XCOMMON_EXTRAS, (xptrint)sizeof(yPDef_z21_Consumer), &ySigA_z21_Consumer, 0
  xFreS(0) SIGCODE(STARTUPSIGNAL)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr,4,1,9)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};
XPROCESSDEF_C(Consumer,"Consumer",z21_Consumer,yPAD_z21_Consumer,
  yVDef_z21_Consumer)
#ifndef XOPTCHAN
XCONST xIdNode yPrsO_z21_Consumer[] = {(xIdNode)&yChaR_z22_ConsumerLine1,
  (xIdNode)0};
#endif
void yFree_z21_Consumer(void *yVarP)
{
}

/*+++++
* GR ref function for process Consumer
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4,1,17)
++++++*/
#ifdef XBREAKBEFORE
char * yRef_z21_Consumer (int SymbolNo, xSymbolType *SymbolType)
{
  switch (SymbolNo) {
    case 0: *SymbolType = xsStart;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),119(65,20),1,1)";
    case 1: *SymbolType = xsInput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),137(65,95),1,1)";
    case 2: *SymbolType = xsInput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),155(50,155),1,1)";
    case 3: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),1,1)";
    case 4: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),2,1)";
    case 5: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),3,1)";
    case 6: *SymbolType = xsAssignmentStatement;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),4,1)";
    case 7: *SymbolType = xsSet;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),122(45,40),5,1)";
    case 8: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),131(65,75),1,1)";
    case 9: *SymbolType = xsOutput;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),143(50,115),1,1)";
    case 10: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),149(65,135),1,1)";
    case 11: *SymbolType = xsSet;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),167(45,175),1,1)";
    case 12: *SymbolType = xsNextstate;
      return "#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),173(65,200),1,1)";
    default : *SymbolType = xsNoSuchSymbolType; return "";
  }
}
#endif

/*+++++
* Function for process Consumer
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr,4,1,17)
++++++*/
YPAD_FUNCTION(yPAD_z21_Consumer)
{
  YPAD_YSVARP
  YPAD_YVARP(yVDef_z21_Consumer)
  YPAD_TEMP_VARS
  YPRSNAME_VAR("Consumer")

  BEGIN_PAD(yVDef_z21_Consumer)

  LOOP_LABEL
  switch (yVarP->RestartAddress) {

/*-----
* START
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),119(65,20),1,1)
------*/
  case 0:
    BEGIN_START_TRANSITION(yPDef_z21_Consumer)
    XAT_FIRST_SYMBOL(0)
    yAssF_SDL_PId(yVarP->z216_mahPID, SDL_NULL, XASS_MR_ASS_NF);
    INIT_TIMER_VAR(yVarP->yTim_coolTimes)
    XBETWEEN_SYMBOLS(3, 1751)

/*-----
* ASSIGNMENT mahPID := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),1,1)
------*/
#ifdef XCASELABELS
  case 3:
#endif
    yAssF_SDL_PId(yVarP->z216_mahPID, SDL_SELF, XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("mahPID := ", &(yVarP->z216_mahPID),
      (tSDLTypeInfo *)&ySDL_SDL_PId);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "mahPID := ", &(yVarP->z216_mahPID),
      (tSDLTypeInfo *)&ySDL_SDL_PId);
#endif
    XBETWEEN_STMTS(4, 1769)

/*-----
* ASSIGNMENT stuffRead := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),2,1)
------*/
#ifdef XCASELABELS
  case 4:
#endif
    yAssF_SDL_Integer(yVarP->z214_stuffRead, SDL_INTEGER_LIT(0),
      XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("stuffRead := ", &(yVarP->z214_stuffRead),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "stuffRead := ", &(yVarP->z214_stuffRead),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
    XBETWEEN_STMTS(5, 1788)

/*-----
* ASSIGNMENT myID := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),3,1)
------*/
#ifdef XCASELABELS
  case 5:
#endif
    yAssF_SDL_Integer(yVarP->z215_myID, SDL_INTEGER_LIT(1), XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("myID := ", &(yVarP->z215_myID),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "myID := ", &(yVarP->z215_myID),
      (tSDLTypeInfo *)&ySDL_SDL_Integer);
#endif
    XBETWEEN_STMTS(6, 1806)

/*-----
* ASSIGNMENT theseTimes := ...
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),4,1)
------*/
#ifdef XCASELABELS
  case 6:
#endif
    yAssF_SDL_Duration(yVarP->z213_theseTimes,
      SDL_DURATION_LIT(1000.0, 1000, 0), XASS_MR_ASS_FR);
#ifdef XTRACE
    xTraceAssign("theseTimes := ", &(yVarP->z213_theseTimes),
      (tSDLTypeInfo *)&ySDL_SDL_Duration);
#endif
#ifdef XMSCE
    xMSCEAssign(VarP, "theseTimes := ", &(yVarP->z213_theseTimes),
      (tSDLTypeInfo *)&ySDL_SDL_Duration);
#endif
    XBETWEEN_STMTS(7, 1825)

/*-----
* SET coolTimes
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),122(45,40),5,1)
------*/
#ifdef XCASELABELS
  case 7:
#endif
    SDL_SET_DUR(xPlus_SDL_Time(SDL_NOW, yVarP->z213_theseTimes), yVarP->
      z213_theseTimes, coolTimes, ySigN_z212_coolTimes, yVarP->yTim_coolTimes,
      "coolTimes")
    XBETWEEN_SYMBOLS(8, 1837)

/*-----
* NEXTSTATE SiDLing
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75),1,1)
------*/
#ifdef XCASELABELS
  case 8:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(SiDLing, z210_SiDLing, "SiDLing")

/*-----
* INPUT coolTimes
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),137(65,95),1,1)
------*/
  case 1:
    XDEBUG_LABEL(SiDLing_coolTimes)
    XAT_FIRST_SYMBOL(1)
    XOS_TRACE_INPUT("coolTimes")
    INPUT_TIMER_VAR(yVarP->yTim_coolTimes)
    XBETWEEN_SYMBOLS(9, 1858)

/*-----
* OUTPUT requestRead
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),143(50,115),1,1)
------*/
#ifdef XCASELABELS
  case 9:
#endif
    ALLOC_SIGNAL_PAR(requestRead, ySigN_z8_requestRead, TO_PROCESS(Io,
      yPrsN_z13_Io), yPDef_z8_requestRead)
    SIGNAL_ALLOC_ERROR
    yAssF_SDL_Integer(((yPDef_z8_requestRead *)OUTSIGNAL_DATA_PTR)->Param1,
      yVarP->z215_myID, XASS_MR_ASS_NF);
    yAssF_SDL_PId(((yPDef_z8_requestRead *)OUTSIGNAL_DATA_PTR)->Param2, yVarP->
      z216_mahPID, XASS_MR_ASS_NF);
    SDL_2OUTPUT_COMPUTED_TO(xDefaultPrioSignal, (xIdNode *)0, requestRead,
      ySigN_z8_requestRead, TO_PROCESS(Io, yPrsN_z13_Io),
      sizeof(yPDef_z8_requestRead), "requestRead")
    SIGNAL_ALLOC_ERROR_END
    XBETWEEN_SYMBOLS(10, 1878)

/*-----
* NEXTSTATE ForcedWait
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135),1,1)
------*/
#ifdef XCASELABELS
  case 10:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(ForcedWait, z211_ForcedWait, "ForcedWait")

/*-----
* INPUT approveRead
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),155(50,155),1,1)
------*/
  case 2:
    XDEBUG_LABEL(ForcedWait_approveRead)
    XAT_FIRST_SYMBOL(2)
    XOS_TRACE_INPUT("approveRead")
    yAssF_SDL_Integer(yVarP->z214_stuffRead, ((yPDef_z9_approveRead *)ySVarP)->
      Param1, XASS_AR_ASS_FR);
    XBETWEEN_SYMBOLS(11, 1900)

/*-----
* SET coolTimes
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),167(45,175),1,1)
------*/
#ifdef XCASELABELS
  case 11:
#endif
    SDL_SET_DUR(xPlus_SDL_Time(SDL_NOW, yVarP->z213_theseTimes), yVarP->
      z213_theseTimes, coolTimes, ySigN_z212_coolTimes, yVarP->yTim_coolTimes,
      "coolTimes")
    XBETWEEN_SYMBOLS(12, 1912)

/*-----
* NEXTSTATE SiDLing
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),173(65,200),1,1)
------*/
#ifdef XCASELABELS
  case 12:
#endif
    XAT_LAST_SYMBOL
    SDL_NEXTSTATE(SiDLing, z210_SiDLing, "SiDLing")
  }
}

/*****
* STATE SiDLing
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),131(65,75),1,1)
******/
static XCONST xInputAction yStaH_z210_SiDLing[] = {xDiscard, xInput, xDiscard};
static XCONST XINPUTREFTYPE yStaI_z210_SiDLing[] = {0, 1, 0};
#ifdef XCOVERAGE
static long int yStaC_z210_SiDLing[2+1];
#endif
XCONST struct xStateIdStruct yStaR_z210_SiDLing = {xStateEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "SiDLing" XCOMMON_EXTRAS,
  z210_SiDLing, yStaH_z210_SiDLing, yStaI_z210_SiDLing, 0, 0, 0
  xCoverage(yStaC_z210_SiDLing), (xStateIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),131(65,75),1,1)")
  XSTA_EXTRAS};

/*****
* STATE ForcedWait
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),149(65,135),1,1)
******/
static XCONST xInputAction yStaH_z211_ForcedWait[] = {xInput, xDiscard,
  xDiscard};
static XCONST XINPUTREFTYPE yStaI_z211_ForcedWait[] = {2, 0, 0};
#ifdef XCOVERAGE
static long int yStaC_z211_ForcedWait[2+1];
#endif
XCONST struct xStateIdStruct yStaR_z211_ForcedWait = {xStateEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "ForcedWait" XCOMMON_EXTRAS,
  z211_ForcedWait, yStaH_z211_ForcedWait, yStaI_z211_ForcedWait, 0, 0, 0
  xCoverage(yStaC_z211_ForcedWait), (xStateIdNode)0
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),149(65,135),1,1)")
  XSTA_EXTRAS};

/*****
* TIMER coolTimes
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),1,7)
******/
XCONST struct xSignalIdStruct ySigR_z212_coolTimes = {xTimerEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "coolTimes" XCOMMON_EXTRAS,
  (xptrint)sizeof(XTIMERHEADERTYPE), 0, 0 xFreS(0) SIGCODE(coolTimes)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Consumer.spr(1),125(145,15),1,7)")
  xSigPrioPar(xDefaultPrioSignal) OFFSET_TIMER_VAR(yTim_coolTimes,
  yVDef_z21_Consumer) XSIG_EXTRAS};

/*****
* DCL theseTimes
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),3,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z213_theseTimes = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "theseTimes" XCOMMON_EXTRAS,
  &xSrtR_SDL_Duration, (tSDLTypeInfo *)&ySDL_SDL_Duration,
  xOffsetOf(yVDef_z21_Consumer, z213_theseTimes), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL stuffRead
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),4,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z214_stuffRead = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "stuffRead" XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yVDef_z21_Consumer, z214_stuffRead), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL myID
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),5,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z215_myID = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "myID" XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yVDef_z21_Consumer, z215_myID), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* DCL mahPID
* <<SYSTEM Concuro/BLOCK Consumers/PROCESS Consumer>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumer.spr(1),125(145,15),6,1)
******/
#ifndef XOPTDCL
XCONST struct xVarIdStruct yVarR_z216_mahPID = {xVariableEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&yPrsR_z21_Consumer, "mahPID" XCOMMON_EXTRAS,
  &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId,
  xOffsetOf(yVDef_z21_Consumer, z216_mahPID), (xptrint)0, 0 XVAR_EXTRAS};
#endif

/*****
* SIGNALROUTE ConsumerLine1
* <<SYSTEM Concuro/BLOCK Consumers>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Consumers.sbk(1),119(37,50),1,1)
******/
#ifndef XOPTCHAN
static XCONST XSIGTYPE yChaS_z22_ConsumerLine1[] = {SIGNAL_NAME(requestRead,
  &ySigR_z8_requestRead), (XSIGTYPE)0};
static XCONST XSIGTYPE yChaSR_z22_ConsumerLine1[] = {SIGNAL_NAME(approveRead,
  &ySigR_z9_approveRead), (XSIGTYPE)0};
XCONST xIdNode yChaO_z22_ConsumerLine1[] = {(xIdNode)&yChaR_z5_ConsumerDongle,
  (xIdNode)0};
XCONST xIdNode yChaOR_z22_ConsumerLine1[] = {(xIdNode)&yPrsR_z21_Consumer,
  (xIdNode)0};
XCONST struct xChannelIdStruct yChaR_z22_ConsumerLine1 = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine1"
  XCOMMON_EXTRAS, yChaS_z22_ConsumerLine1, yChaO_z22_ConsumerLine1,
  &yChaRR_z22_ConsumerLine1 XCHA_EXTRAS};
XCONST struct xChannelIdStruct yChaRR_z22_ConsumerLine1 = {xSignalrouteEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&yBloR_z2_Consumers, "ConsumerLine1"
  XCOMMON_EXTRAS, yChaSR_z22_ConsumerLine1, yChaOR_z22_ConsumerLine1,
  &yChaR_z22_ConsumerLine1 XCHA_EXTRAS};
#endif

/*****
* CHANNEL ProducerDongle
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),140(130,72),1,1)
******/
#ifndef XOPTCHAN
static XCONST XSIGTYPE yChaS_z3_ProducerDongle[] = {SIGNAL_NAME(requestWrite,
  &ySigR_z6_requestWrite), (XSIGTYPE)0};
static XCONST XSIGTYPE yChaSR_z3_ProducerDongle[] = {SIGNAL_NAME(approveWrite,
  &ySigR_z7_approveWrite), (XSIGTYPE)0};
XCONST struct xChannelIdStruct yChaR_z3_ProducerDongle = {xChannelEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ProducerDongle"
  XCOMMON_EXTRAS, yChaS_z3_ProducerDongle, yChaO_z3_ProducerDongle,
  &yChaRR_z3_ProducerDongle XCHA_EXTRAS};
XCONST struct xChannelIdStruct yChaRR_z3_ProducerDongle = {xChannelEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ProducerDongle"
  XCOMMON_EXTRAS, yChaSR_z3_ProducerDongle, yChaOR_z3_ProducerDongle,
  &yChaR_z3_ProducerDongle XCHA_EXTRAS};
#endif

/*****
* CHANNEL ThisWayOrTheHighway
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),122(45,102),1,1)
******/
#ifndef XOPTCHAN
static XCONST XSIGTYPE yChaS_z4_ThisWayOrTheHighway[] =
  {SIGNAL_NAME(consumerXReadItemY, &ySigR_zA_consumerXReadItemY),
  SIGNAL_NAME(producerXWroteItemY, &ySigR_zB_producerXWroteItemY), (XSIGTYPE)0};
static XCONST XSIGTYPE yChaSR_z4_ThisWayOrTheHighway[] = {(XSIGTYPE)0};
#ifndef XMULTIPLESYSTEMS
XCONST xIdNode yChaO_z4_ThisWayOrTheHighway[] = {(xIdNode)&yEnvR_env,
  (xIdNode)0};
#else
XCONST xIdNode yChaO_z4_ThisWayOrTheHighway[] =
  {(xIdNode)&yGateOut_Concuro_ThisWayOrTheHighway, (xIdNode)0};
#endif
XCONST struct xChannelIdStruct yChaR_z4_ThisWayOrTheHighway = {xChannelEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ThisWayOrTheHighway"
  XCOMMON_EXTRAS, yChaS_z4_ThisWayOrTheHighway, yChaO_z4_ThisWayOrTheHighway,
  &yChaRR_z4_ThisWayOrTheHighway XCHA_EXTRAS};
XCONST struct xChannelIdStruct yChaRR_z4_ThisWayOrTheHighway = {xChannelEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ThisWayOrTheHighway"
  XCOMMON_EXTRAS, yChaSR_z4_ThisWayOrTheHighway, yChaOR_z4_ThisWayOrTheHighway,
  &yChaR_z4_ThisWayOrTheHighway XCHA_EXTRAS};
#ifdef XMULTIPLESYSTEMS
XCONST xIdNode yConnIn_Concuro_ThisWayOrTheHighway[] =
  {(xIdNode)&yChaRR_z4_ThisWayOrTheHighway, (xIdNode)0};
XCONST struct xChannelIdStruct yGateIn_Concuro_ThisWayOrTheHighway= {xGateEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro
  xIdNames("Concuro_ThisWayOrTheHighway") XCOMMON_EXTRAS,
  yChaSR_z4_ThisWayOrTheHighway, yConnIn_Concuro_ThisWayOrTheHighway,
  &yGateOut_Concuro_ThisWayOrTheHighway XCHA_EXTRAS};
XCONST struct xChannelIdStruct yGateOut_Concuro_ThisWayOrTheHighway= {xGateEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro
  xIdNames("Concuro_ThisWayOrTheHighway") XCOMMON_EXTRAS,
  yChaS_z4_ThisWayOrTheHighway, yConnOut_Concuro_ThisWayOrTheHighway,
  &yGateIn_Concuro_ThisWayOrTheHighway XCHA_EXTRAS};
#endif
#endif

/*****
* CHANNEL ConsumerDongle
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),149(132,152),1,1)
******/
#ifndef XOPTCHAN
static XCONST XSIGTYPE yChaS_z5_ConsumerDongle[] = {SIGNAL_NAME(requestRead,
  &ySigR_z8_requestRead), (XSIGTYPE)0};
static XCONST XSIGTYPE yChaSR_z5_ConsumerDongle[] = {SIGNAL_NAME(approveRead,
  &ySigR_z9_approveRead), (XSIGTYPE)0};
XCONST struct xChannelIdStruct yChaR_z5_ConsumerDongle = {xChannelEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ConsumerDongle"
  XCOMMON_EXTRAS, yChaS_z5_ConsumerDongle, yChaO_z5_ConsumerDongle,
  &yChaRR_z5_ConsumerDongle XCHA_EXTRAS};
XCONST struct xChannelIdStruct yChaRR_z5_ConsumerDongle = {xChannelEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "ConsumerDongle"
  XCOMMON_EXTRAS, yChaSR_z5_ConsumerDongle, yChaOR_z5_ConsumerDongle,
  &yChaR_z5_ConsumerDongle XCHA_EXTRAS};
#endif

/*****
* SIGNAL requestWrite
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),2,1)
******/
static xSignalNode ySigA_z6_requestWrite = (xSignalNode)0;
XCONST struct xSignalIdStruct ySigR_z6_requestWrite = {xSignalEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "requestWrite" XCOMMON_EXTRAS,
  (xptrint)sizeof(yPDef_z6_requestWrite), &ySigA_z6_requestWrite, 0 xFreS(0)
  SIGCODE(requestWrite)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),2,1)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};
#ifndef XOPTSIGPARA
XCONST struct xVarIdStruct ySPaR1_z6_requestWrite = {xSignalParEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySigR_z6_requestWrite xIdNames(" ") XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yPDef_z6_requestWrite, Param1), (xptrint)0, (xbool)0 XSPA_EXTRAS};
XCONST struct xVarIdStruct ySPaR2_z6_requestWrite = {xSignalParEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySigR_z6_requestWrite xIdNames(" ") XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yPDef_z6_requestWrite, Param2), (xptrint)0, (xbool)0 XSPA_EXTRAS};
XCONST struct xVarIdStruct ySPaR3_z6_requestWrite = {xSignalParEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySigR_z6_requestWrite xIdNames(" ") XCOMMON_EXTRAS,
  &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId,
  xOffsetOf(yPDef_z6_requestWrite, Param3), (xptrint)0, (xbool)0 XSPA_EXTRAS};
#endif

/*****
* SIGNAL approveWrite
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),3,1)
******/
XCONST struct xSignalIdStruct ySigR_z7_approveWrite = {xSignalEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "approveWrite" XCOMMON_EXTRAS,
  (xptrint)sizeof(XSIGNALHEADERTYPE), 0, 0 xFreS(0) SIGCODE(approveWrite)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),3,1)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};

/*****
* SIGNAL requestRead
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),4,1)
******/
static xSignalNode ySigA_z8_requestRead = (xSignalNode)0;
XCONST struct xSignalIdStruct ySigR_z8_requestRead = {xSignalEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "requestRead" XCOMMON_EXTRAS,
  (xptrint)sizeof(yPDef_z8_requestRead), &ySigA_z8_requestRead, 0 xFreS(0)
  SIGCODE(requestRead)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),4,1)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};
#ifndef XOPTSIGPARA
XCONST struct xVarIdStruct ySPaR1_z8_requestRead = {xSignalParEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySigR_z8_requestRead xIdNames(" ") XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yPDef_z8_requestRead, Param1), (xptrint)0, (xbool)0 XSPA_EXTRAS};
XCONST struct xVarIdStruct ySPaR2_z8_requestRead = {xSignalParEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySigR_z8_requestRead xIdNames(" ") XCOMMON_EXTRAS,
  &xSrtR_SDL_PId, (tSDLTypeInfo *)&ySDL_SDL_PId,
  xOffsetOf(yPDef_z8_requestRead, Param2), (xptrint)0, (xbool)0 XSPA_EXTRAS};
#endif

/*****
* SIGNAL approveRead
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),5,1)
******/
static xSignalNode ySigA_z9_approveRead = (xSignalNode)0;
XCONST struct xSignalIdStruct ySigR_z9_approveRead = {xSignalEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "approveRead" XCOMMON_EXTRAS,
  (xptrint)sizeof(yPDef_z9_approveRead), &ySigA_z9_approveRead, 0 xFreS(0)
  SIGCODE(approveRead)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),5,1)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};
#ifndef XOPTSIGPARA
XCONST struct xVarIdStruct ySPaR1_z9_approveRead = {xSignalParEC , (xIdNode)0,
  (xIdNode)0, (xIdNode)&ySigR_z9_approveRead xIdNames(" ") XCOMMON_EXTRAS,
  &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yPDef_z9_approveRead, Param1), (xptrint)0, (xbool)0 XSPA_EXTRAS};
#endif

/*****
* SIGNAL consumerXReadItemY
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),6,1)
******/
static xSignalNode ySigA_zA_consumerXReadItemY = (xSignalNode)0;
XCONST struct xSignalIdStruct ySigR_zA_consumerXReadItemY = {xSignalEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "consumerXReadItemY"
  XCOMMON_EXTRAS, (xptrint)sizeof(yPDef_zA_consumerXReadItemY),
  &ySigA_zA_consumerXReadItemY, 0 xFreS(0) SIGCODE(consumerXReadItemY)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),6,1)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};
#ifndef XOPTSIGPARA
XCONST struct xVarIdStruct ySPaR1_zA_consumerXReadItemY = {xSignalParEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_zA_consumerXReadItemY xIdNames(" ")
  XCOMMON_EXTRAS, &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yPDef_zA_consumerXReadItemY, Param1), (xptrint)0, (xbool)0
  XSPA_EXTRAS};
XCONST struct xVarIdStruct ySPaR2_zA_consumerXReadItemY = {xSignalParEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_zA_consumerXReadItemY xIdNames(" ")
  XCOMMON_EXTRAS, &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yPDef_zA_consumerXReadItemY, Param2), (xptrint)0, (xbool)0
  XSPA_EXTRAS};
#endif

/*****
* SIGNAL producerXWroteItemY
* <<SYSTEM Concuro>>
* #SDTREF(SDL,C:\temp\LAB8Concurency3\Concuro.ssy(1),179(20,175),7,1)
******/
static xSignalNode ySigA_zB_producerXWroteItemY = (xSignalNode)0;
XCONST struct xSignalIdStruct ySigR_zB_producerXWroteItemY = {xSignalEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySysR_z_Concuro, "producerXWroteItemY"
  XCOMMON_EXTRAS, (xptrint)sizeof(yPDef_zB_producerXWroteItemY),
  &ySigA_zB_producerXWroteItemY, 0 xFreS(0) SIGCODE(producerXWroteItemY)
  xBreakB("#SDTREF(SDL,C:\\temp\\LAB8Concurency3\\Concuro.ssy(1),179(20,175),7,1)")
  xSigPrioPar(xDefaultPrioSignal) ZERO_OFFSET XSIG_EXTRAS};
#ifndef XOPTSIGPARA
XCONST struct xVarIdStruct ySPaR1_zB_producerXWroteItemY = {xSignalParEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_zB_producerXWroteItemY xIdNames(" ")
  XCOMMON_EXTRAS, &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yPDef_zB_producerXWroteItemY, Param1), (xptrint)0, (xbool)0
  XSPA_EXTRAS};
XCONST struct xVarIdStruct ySPaR2_zB_producerXWroteItemY = {xSignalParEC ,
  (xIdNode)0, (xIdNode)0, (xIdNode)&ySigR_zB_producerXWroteItemY xIdNames(" ")
  XCOMMON_EXTRAS, &xSrtR_SDL_Integer, (tSDLTypeInfo *)&ySDL_SDL_Integer,
  xOffsetOf(yPDef_zB_producerXWroteItemY, Param2), (xptrint)0, (xbool)0
  XSPA_EXTRAS};
#endif

/*************************************************************************
**                       SECTION Initialization                         **
*************************************************************************/
#ifndef XMULTIPLESYSTEMS
extern void yInit (void)
{
#else
extern void yInit_Concuro (void)
{
#endif
  int  Temp;
  YINIT_TEMP_VARS
  BEGIN_YINIT

#ifdef XMONITOR
  xTranslatorVersion =
    "Program generated by Cbasic 6.0.0 ";
#endif
  xInsertIdNode((xIdNode)&ySysR_z_Concuro);
  xInsertIdNode((xIdNode)&yBloR_z0_Producers);
  xInsertIdNode((xIdNode)&yPrsR_z01_Producer);
  xInsertIdNode((xIdNode)&ySigR_z01_Producer);
  INIT_PROCESS_TYPE(Producer,z01_Producer,yPrsN_z01_Producer,"z01_Producer",-1,
    1,yVDef_z01_Producer,xDefaultPrioProcess,yPAD_z01_Producer)
#ifdef SDL_STATIC_CREATE
  SDL_STATIC_CREATE(Producer,z01_Producer,yPrsN_z01_Producer,"Producer",
    ySigN_z01_Producer,yPDef_z01_Producer,yVDef_z01_Producer,
    xDefaultPrioProcess,yPAD_z01_Producer,1)
#endif
#ifndef XOPTSORT
  xInsertIdNode((xIdNode)&ySrtR_z010_iLikeToWrite);
#endif
#ifndef XOPTSORT
  xInsertIdNode((xIdNode)&ySrtR_z011_babaAuRum);
#endif
  xInsertIdNode((xIdNode)&yStaR_z012_SiDLing);
  xInsertIdNode((xIdNode)&yStaR_z013_ForcedToWait);
  xInsertIdNode((xIdNode)&ySigR_z014_walkingTime);
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z015_someTime);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z016_myID);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z017_numberToWrite);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z018_mahPID);
#endif
#ifndef XOPTCHAN
  xInsertIdNode((xIdNode)&yChaR_z02_ProducerLine1);
  xInsertIdNode((xIdNode)&yChaRR_z02_ProducerLine1);
#endif
  xInsertIdNode((xIdNode)&yBloR_z1_ConcuroBlock);
  xInsertIdNode((xIdNode)&yPrsR_z13_Io);
  xInsertIdNode((xIdNode)&ySigR_z13_Io);
  INIT_PROCESS_TYPE(Io,z13_Io,yPrsN_z13_Io,"z13_Io",-1,1,yVDef_z13_Io,
    xDefaultPrioProcess,yPAD_z13_Io)
#ifdef SDL_STATIC_CREATE
  SDL_STATIC_CREATE(Io,z13_Io,yPrsN_z13_Io,"Io",ySigN_z13_Io,yPDef_z13_Io,
    yVDef_z13_Io,xDefaultPrioProcess,yPAD_z13_Io,1)
#endif
  xInsertIdNode((xIdNode)&yStaR_z130_Phase1);
  xInsertIdNode((xIdNode)&yStaR_z131_Phase2);
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z132_numberWritten);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z133_writeID);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z134_writePID);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z135_readID);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z136_readPID);
#endif
#ifndef XOPTCHAN
  xInsertIdNode((xIdNode)&yChaR_z14_ProduceMe);
  xInsertIdNode((xIdNode)&yChaRR_z14_ProduceMe);
#endif
#ifndef XOPTCHAN
  xInsertIdNode((xIdNode)&yChaR_z15_LineOut);
  xInsertIdNode((xIdNode)&yChaRR_z15_LineOut);
#endif
#ifndef XOPTCHAN
  xInsertIdNode((xIdNode)&yChaR_z16_ConsumeMe);
  xInsertIdNode((xIdNode)&yChaRR_z16_ConsumeMe);
#endif
  xInsertIdNode((xIdNode)&yBloR_z2_Consumers);
  xInsertIdNode((xIdNode)&yPrsR_z21_Consumer);
  xInsertIdNode((xIdNode)&ySigR_z21_Consumer);
  INIT_PROCESS_TYPE(Consumer,z21_Consumer,yPrsN_z21_Consumer,"z21_Consumer",-1,
    1,yVDef_z21_Consumer,xDefaultPrioProcess,yPAD_z21_Consumer)
#ifdef SDL_STATIC_CREATE
  SDL_STATIC_CREATE(Consumer,z21_Consumer,yPrsN_z21_Consumer,"Consumer",
    ySigN_z21_Consumer,yPDef_z21_Consumer,yVDef_z21_Consumer,
    xDefaultPrioProcess,yPAD_z21_Consumer,1)
#endif
  xInsertIdNode((xIdNode)&yStaR_z210_SiDLing);
  xInsertIdNode((xIdNode)&yStaR_z211_ForcedWait);
  xInsertIdNode((xIdNode)&ySigR_z212_coolTimes);
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z213_theseTimes);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z214_stuffRead);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z215_myID);
#endif
#ifndef XOPTDCL
  xInsertIdNode((xIdNode)&yVarR_z216_mahPID);
#endif
#ifndef XOPTCHAN
  xInsertIdNode((xIdNode)&yChaR_z22_ConsumerLine1);
  xInsertIdNode((xIdNode)&yChaRR_z22_ConsumerLine1);
#endif
#ifndef XOPTCHAN
  xInsertIdNode((xIdNode)&yChaR_z3_ProducerDongle);
  xInsertIdNode((xIdNode)&yChaRR_z3_ProducerDongle);
#endif
#ifndef XOPTCHAN
  xInsertIdNode((xIdNode)&yChaR_z4_ThisWayOrTheHighway);
  xInsertIdNode((xIdNode)&yChaRR_z4_ThisWayOrTheHighway);
#endif
#ifdef XMULTIPLESYSTEMS
  xInsertIdNode((xIdNode)&yGateIn_Concuro_ThisWayOrTheHighway);
  xInsertIdNode((xIdNode)&yGateOut_Concuro_ThisWayOrTheHighway);
#endif
#ifndef XOPTCHAN
  xInsertIdNode((xIdNode)&yChaR_z5_ConsumerDongle);
  xInsertIdNode((xIdNode)&yChaRR_z5_ConsumerDongle);
#endif
  xInsertIdNode((xIdNode)&ySigR_z6_requestWrite);
#ifndef XOPTSIGPARA
  xInsertIdNode((xIdNode)&ySPaR1_z6_requestWrite);
  xInsertIdNode((xIdNode)&ySPaR2_z6_requestWrite);
  xInsertIdNode((xIdNode)&ySPaR3_z6_requestWrite);
#endif
  xInsertIdNode((xIdNode)&ySigR_z7_approveWrite);
  xInsertIdNode((xIdNode)&ySigR_z8_requestRead);
#ifndef XOPTSIGPARA
  xInsertIdNode((xIdNode)&ySPaR1_z8_requestRead);
  xInsertIdNode((xIdNode)&ySPaR2_z8_requestRead);
#endif
  xInsertIdNode((xIdNode)&ySigR_z9_approveRead);
#ifndef XOPTSIGPARA
  xInsertIdNode((xIdNode)&ySPaR1_z9_approveRead);
#endif
  xInsertIdNode((xIdNode)&ySigR_zA_consumerXReadItemY);
#ifndef XOPTSIGPARA
  xInsertIdNode((xIdNode)&ySPaR1_zA_consumerXReadItemY);
  xInsertIdNode((xIdNode)&ySPaR2_zA_consumerXReadItemY);
#endif
  xInsertIdNode((xIdNode)&ySigR_zB_producerXWroteItemY);
#ifndef XOPTSIGPARA
  xInsertIdNode((xIdNode)&ySPaR1_zB_producerXWroteItemY);
  xInsertIdNode((xIdNode)&ySPaR2_zB_producerXWroteItemY);
#endif
}
