From 7183406cb9ebd7aeb0a0cf1f4b5cf2b8148a8072 Mon Sep 17 00:00:00 2001
From: j2-tulloch <james2.tulloch@live.uwe.ac.uk>
Date: Fri, 5 Jan 2024 14:45:11 +0000
Subject: [PATCH] Upload New File

---
 Assignment/Task 2/main.cpp | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 Assignment/Task 2/main.cpp

diff --git a/Assignment/Task 2/main.cpp b/Assignment/Task 2/main.cpp
new file mode 100644
index 0000000..311ea45
--- /dev/null
+++ b/Assignment/Task 2/main.cpp	
@@ -0,0 +1,41 @@
+#include <iostream>
+#include "scheduler.h"
+
+scheduler s;
+int shared_data = 10;
+
+void func1(void* arg) {
+    std::cout << "Entering Fiber1" << std::endl;
+    std::cout << "fiber 1 address: " << arg << std::endl;
+    std::cout << "fiber 1: " << shared_data << std::endl;
+    shared_data++;
+    s.fiber_exit(); // Exit the fiber
+    std::cout << "Exit of Fiber1" << std::endl;
+}
+
+void func2(void* arg) {
+    std::cout << "fiber 2 address: " << arg << std::endl;
+    std::cout << "fiber 2: " << shared_data << std::endl;  // This should now print 11
+    s.fiber_exit(); // Exit the fiber
+}
+
+int main() {
+
+    try {
+    std::cout << " Starting funcs" << std::endl;
+    fiber f1(&func1, nullptr);
+    std::cout << "Shared data:" << shared_data << std::endl;
+    std::cout << "Between" << std::endl;
+    fiber f2(&func2, nullptr);
+    std::cout <<"Funcs Done" << std::endl;    
+    s.spawn(&f1);
+    s.spawn(&f2);
+    std::cout <<"Spawning" << std::endl;
+    s.do_it();  // Execute the fibers
+    std::cout << "HELLO" <<std::endl;
+    } catch (const std::exception& e) {
+    std::cerr << "Exception Caught:" <<e.what() <<std::endl;
+    }
+    return 0;
+}
+
-- 
GitLab