Setup structure for programs
This commit is contained in:
parent
71b700d11e
commit
160dc9a99e
@ -2,5 +2,7 @@
|
|||||||
#define CONSUMER_H
|
#define CONSUMER_H
|
||||||
|
|
||||||
void Consumer(void);
|
void Consumer(void);
|
||||||
|
void consume_item(int item);
|
||||||
|
long int remove_item(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -2,5 +2,7 @@
|
|||||||
#define PRODUCER_H
|
#define PRODUCER_H
|
||||||
|
|
||||||
void Producer(void);
|
void Producer(void);
|
||||||
|
long int produce_item(void);
|
||||||
|
void insert_item(int item);
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -1,6 +1,25 @@
|
|||||||
#include "consumer.h"
|
#include "consumer.h"
|
||||||
|
|
||||||
void Consumer(void)
|
void Consumer(void)
|
||||||
|
{
|
||||||
|
int item;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
down(&full);
|
||||||
|
down(&mutex);
|
||||||
|
item = remove_item();
|
||||||
|
up(&mutex);
|
||||||
|
up(&empty);
|
||||||
|
consume_item(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void consume_item(item)
|
||||||
|
{
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
long int remove_item()
|
||||||
{
|
{
|
||||||
;
|
;
|
||||||
}
|
}
|
@ -1,6 +1,11 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <semaphore.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
semaphore mutex = 1;
|
||||||
|
semaphore empty;
|
||||||
|
semaphore full = 0;
|
||||||
|
|
||||||
int GetSplitAmount(char* argv);
|
int GetSplitAmount(char* argv);
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
@ -8,7 +13,6 @@ int main(int argc, char* argv[])
|
|||||||
int splitLimit = 1;
|
int splitLimit = 1;
|
||||||
if (argc == 2)
|
if (argc == 2)
|
||||||
splitLimit = GetSplitAmount(argv[1]);
|
splitLimit = GetSplitAmount(argv[1]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int GetSplitAmount(char* argv)
|
int GetSplitAmount(char* argv)
|
||||||
|
@ -1,6 +1,26 @@
|
|||||||
|
#include <stdlib.h>
|
||||||
#include "producer.h"
|
#include "producer.h"
|
||||||
|
|
||||||
void Producer(void)
|
void Producer(void)
|
||||||
|
{
|
||||||
|
int item;
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
item = produce_item();
|
||||||
|
down(&empty);
|
||||||
|
down(&mutex);
|
||||||
|
insert_item(item);
|
||||||
|
up(&mutex);
|
||||||
|
up(&full);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
long int produce_item(void)
|
||||||
|
{
|
||||||
|
return random();
|
||||||
|
}
|
||||||
|
|
||||||
|
void insert_item(int item)
|
||||||
{
|
{
|
||||||
;
|
;
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user