home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_08_10
/
8n10129a
< prev
next >
Wrap
Text File
|
1990-08-29
|
2KB
|
77 lines
#include "csim.h"
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generator(void);
void tellor(void);
void ender(void);
int customers = 0;
int tellors = 1;
int main(void)
{
clrscr();
start_process(generator,0x0040);
randomize();
start_process(tellor,0x0040);
start_process(tellor,0x0040);
start_process(tellor,0x0040);
if(start_kb_process(ender,0x0040))
exit_processing(3);
set_time_ratio(1000.0);
sim_start();
return(0);
}
void generator(void)
{
int post_id;
post_id = init_post("Customers");
while(1)
{
customers++;
set_post(post_id,&customers);
gotoxy(1,1);
printf("customers = %d time %d",customers,CurrentTime);
wait_for_time((rand()%(int)(4.5 _MINUTES_)));
}
}
void tellor(void)
{
int number;
int post_id;
number = tellors++;
post_id = init_post("Customers");
while(1)
{
gotoxy(2,1+2*number);
printf("0");
wait_post(post_id);
if(customers)
{
gotoxy(2,1+2*number);
printf("1");
if(customers>1)
set_post(post_id,&customers);
customers--;
gotoxy(1,1);
printf("customers = %d time %ld",customers,CurrentTime);
wait_for_time(4_MINUTES_ +rand()%(int)(6_MINUTES_));
gotoxy(1,1);
printf("customers = %d time %ld",customers,CurrentTime);
}
}
}
void ender(void)
{
wait_for_time(8 _HOURS_);
exit_processing(0);
}