home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
vol_300
/
349_01
/
sss.arc
/
EX_0601.C
< prev
next >
Wrap
Text File
|
1991-04-10
|
1KB
|
68 lines
/* Program EX_0601.C
Listing 12C - see documentation in TUTOR.SSS
*/
#include "SSSC.H"
#define ARRIVL 1
#define STARTA 2
#define ENDACT 3
#define NEXTAC 4
int id, server, ecode;
void prime()
{
server = 1;
id = 0;
INIQUE(1, 3, 1);
SIMEND(24.0);
CREATE(0.0, 0);
INISTA(1, "Cost", 0, 0, 0.0, 0.0);
SETQDC(1, "SVF");
}
main()
{
prime();
do
{
if ((ecode = NEXTEV()) > 0)
switch(ecode)
{
case ARRIVL :
id++;
CREATE(EX(1.0), id);
SETA(1, T());
SETA(2, 1 + EX(2.0));
SETA(3, RN(.66667, .16667));
SCHED(0.0, NEXTAC, IDE());
break;
case NEXTAC:
if (server) SCHED(0.0, STARTA, IDE());
else QUEUE(1, A(3)/A(2));
break;
case STARTA:
SCHED(A(3), ENDACT, IDE());
server--;
break;
case ENDACT:
TALLY(1, (T() - A(1))*A(2));
DISPOS();
server++;
if (NQ(1))
{
REMVFQ(1, 1);
SCHED(0.0, STARTA, IDE());
}
break;
}
} while (ecode);
SUMRY("");
}