From 688411c38bd1a682c0c169ed91b9f128acd5b42d Mon Sep 17 00:00:00 2001
From: TriantaTV <gregcraw2001@gmail.com>
Date: Thu, 13 Oct 2022 23:25:16 -0500
Subject: [PATCH] Producer and Consumer can both interact with shared memory

---
 include/consumer.h | 4 ----
 include/producer.h | 5 -----
 src/consumer.c     | 5 ++++-
 src/driver.c       | 2 +-
 src/producer.c     | 5 ++++-
 5 files changed, 9 insertions(+), 12 deletions(-)
 delete mode 100644 include/consumer.h
 delete mode 100644 include/producer.h

diff --git a/include/consumer.h b/include/consumer.h
deleted file mode 100644
index 7b64da4..0000000
--- a/include/consumer.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef CONSUMER_H
-#define CONSUMER_H
-
-#endif
\ No newline at end of file
diff --git a/include/producer.h b/include/producer.h
deleted file mode 100644
index 43fb242..0000000
--- a/include/producer.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef PRODUCER_H
-#define PRODUCER_H
-
-
-#endif
\ No newline at end of file
diff --git a/src/consumer.c b/src/consumer.c
index 0c7c40d..0f4fcff 100644
--- a/src/consumer.c
+++ b/src/consumer.c
@@ -15,8 +15,11 @@ int main(int argc, char* argv[])
         fprintf(stderr, "Usage: %s SharedID# \n", argv[0]);
         exit(1);
     }
-    printf("Consumer created.\n");
     int sharedID = StringToNumber(argv[1]);
+    SharedStruct* sharedMem = shmat(sharedID, NULL, 0);
+    sem_wait(&sharedMem->semConsumer);
+    printf("Checking for 5 in shared struct.\n");
+    printf("%d\n", sharedMem->buffer[0]);
     return 0;
 }
 
diff --git a/src/driver.c b/src/driver.c
index c5dfefe..fd00612 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -15,7 +15,7 @@ int main(int argc, char* argv[])
     int producerAmount = GetSplitAmount(argc, argv, 0);
     int consumerAmount = GetSplitAmount(argc, argv, 1);
     int sharedID;
-    SharedStruct *sharedMem;
+    SharedStruct* sharedMem;
     sharedID = shmget(IPC_CREAT | (key_t)1243, sizeof(SharedStruct), IPC_CREAT | 0666);
     if (sharedID < 0)
     {
diff --git a/src/producer.c b/src/producer.c
index 30b298d..115d6d7 100644
--- a/src/producer.c
+++ b/src/producer.c
@@ -18,8 +18,11 @@ int main(int argc, char* argv[])
         exit(1);
     }
     srandom((unsigned int) time(NULL));
-    printf("Producer created.\n");
     int sharedID = StringToNumber(argv[1]);
+    SharedStruct* sharedMem = shmat(sharedID, NULL, 0);
+    printf("Adding 5 to shared struct.\n");
+    sharedMem->buffer[0] = 5;
+    sem_post(&sharedMem->semConsumer);
     return 0;
 }