changeset 992:a7d1288cf58e

merge
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Fri, 03 Dec 2021 20:57:41 +0900
parents 5480387d4c8d (current diff) c64cc1295af0 (diff)
children 762bd4cea38b
files src/parallel_execution/CMakeLists.txt src/parallel_execution/RedBlackTree.cbc src/parallel_execution/test/rbTree_test.cbc
diffstat 7 files changed, 81 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/parallel_execution/CMakeLists.txt	Sat Nov 27 17:29:54 2021 +0900
+++ b/src/parallel_execution/CMakeLists.txt	Fri Dec 03 20:57:41 2021 +0900
@@ -203,6 +203,8 @@
 )
 
 
+
+
 GearsCommand(
   TARGET
     gearsFile
@@ -218,6 +220,23 @@
       test/rb_tree_test1.cbc TaskManagerImpl.cbc CPUWorker.cbc SynchronizedQueue.cbc AtomicReference.cbc SingleLinkedQueue.cbc RedBlackTree.cbc SingleLinkedStack.cbc compare.c
 )
 
+
+GearsCommand(
+  TARGET
+  dist_CountUp
+  SOURCES
+  CPUWorker.cbc SynchronizedQueue.cbc SingleLinkedStack.cbc examples/distributedCountUp/main.cbc  AtomicReference.cbc SingleLinkedQueue.cbc
+  examples/distributedCountUp/CountUpImpl.cbc TaskManagerImpl.cbc MultiDimIterator.cbc SpinLock.cbc
+)
+
+GearsCommand(
+  TARGET
+    socket_test
+  SOURCES
+    examples/socket_test/socket_test.cbc examples/socket_test/ServerImpl.cbc
+)
+)
+
 GearsCommand(
   TARGET
     gearsDirectory
--- a/src/parallel_execution/RedBlackTree.cbc	Sat Nov 27 17:29:54 2021 +0900
+++ b/src/parallel_execution/RedBlackTree.cbc	Fri Dec 03 20:57:41 2021 +0900
@@ -301,9 +301,8 @@
     tree->result = compare(tree->current, node);
     if (tree->result == EQ) {
         *node = *tree->current;
-        Gearef(context, Tree)->node = node;
-        goto next(node, ...);
-        // goto meta(context, next);
+        
+        goto meta(context, next);
     } else if (tree->result == GT) {
         tree->current = tree->current->right;
     } else {
--- a/src/parallel_execution/examples/gearsFile/GearsFile.h	Sat Nov 27 17:29:54 2021 +0900
+++ b/src/parallel_execution/examples/gearsFile/GearsFile.h	Fri Dec 03 20:57:41 2021 +0900
@@ -4,8 +4,14 @@
     union Data* queue;
     struct FileData* fileData;
     __code readData(Impl* gearsFile, __code next(...));    
-    __code writeData(Impl* gearsFile, __code next(...));
-    __code takeStream(Impl* gearsFile, Queue* queue, __code next(...));
+    __code writeData(Impl* gearsFile, Data* data,__code next(...));
     __code test(Impl* gearsFile, FileData* fileData, __code next(...));
+
+    __code putInputQueue(Impl* gearsFile, FileData* fileData,__code next(...));
+    __code takeInputQueue(Impl* gearsFile, __code next(...));
+
+    __code putMainQueue(Impl* gearsFile, FileData* fileData, __code next(...));
+    __code takeMainQueue(Impl* gearsFile, __code next(...));
+
     __code next(...);
 } GearsFile;
--- a/src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc	Sat Nov 27 17:29:54 2021 +0900
+++ b/src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc	Fri Dec 03 20:57:41 2021 +0900
@@ -31,17 +31,42 @@
     goto iQueue->take(test);
 }
 
-__code writeData(struct GearsFileImpl* gearsFile, __code next(...)) {
+__code writeData(struct GearsFileImpl* gearsFile, Data* data,__code next(...)) {
     printf("writeData\n");
     struct Queue* queue = gearsFile->inputQueue;
-    FileData* fileData = NEW(FileData);
-    fileData->string = "tsts"; 
-    goto queue->put(fileData, next(...));
+    Gearef(context, GearsFile)->fileData = data; //手入力
+    goto putInputQueue(fileData, next);
+}
+
+__code putInputQueue(struct GearsFileImpl* gearsFile, FileData* fileData, __code next(...)){
+    printf("putInputQueue\n", fileData->string);
+    struct Queue* iQueue = gearsFile->inputQueue;
+    goto iQueue->put(fileData, takeInputQueue); 
+}
+
+__code takeInputQueue(struct GearsFileImpl* gearsFile, __code next(...)){
+    printf("takeInputQueue\n");
+    struct Queue* iQueue = gearsFile->inputQueue;
+    goto iQueue->take(putMainQueue); 
 }
 
+__code putMainQueue(struct GearsFileImpl* gearsFile, FileData* fileData, __code next(...)){
+    printf("putMainQueue\n", fileData->string);
+    struct Queue* mainQueue = gearsFile->mainQueue;
+    goto mainQueue->put(fileData, takeMainQueue); 
+}
 
-__code takeStreamQueue(struct GearsFileImpl* gearsFile, Queue* queue, __code next(...)){
-    printf("takeStreamQueue\n");
+__code putMainQueue_stub(Context* context){
+	GearsFileImpl* gearsFile = (GearsFileImpl*)GearImpl(context, GearsFile, gearsFile);
+    FileData* fileData = Gearef(context, Queue)->data;
+    enum Code next = Gearef(context, GearsFile)->next;
+    goto putMainQueueGearsFileImpl(context, gearsFile, fileData, next);
+}
+
+__code takeMainQueue(struct GearsFileImpl* gearsFile, __code next(...)){
+    printf("takeMainQueue\n");
+    struct Queue* mainQueue = gearsFile->mainQueue;
+    goto mainQueue->take(test); 
 }
 
 __code test(struct GearsFileImpl* gearsFile, FileData* fileData, __code next(...)) {
--- a/src/parallel_execution/examples/gearsFile/GearsFile_test.cbc	Sat Nov 27 17:29:54 2021 +0900
+++ b/src/parallel_execution/examples/gearsFile/GearsFile_test.cbc	Fri Dec 03 20:57:41 2021 +0900
@@ -1,10 +1,12 @@
 #include "../../../context.h"
 #interface "GearsFile.h"
+#interface "FileData.h"
 
 
-
-__code fileTask1(GearsFile* gearsFile){     
-    goto gearsFile->writeData(fileTask2); 
+__code fileTask1(GearsFile* gearsFile){ 
+    FileData* fileData = NEW(FileData);
+    fileData->string = "tsts";   
+    goto gearsFile->writeData(fileData, fileTask2); 
 }
 
 __code fileTask1_stub(struct Context* context){
Binary file src/parallel_execution/socket_test has changed
--- a/src/parallel_execution/test/rbTree_test.cbc	Sat Nov 27 17:29:54 2021 +0900
+++ b/src/parallel_execution/test/rbTree_test.cbc	Fri Dec 03 20:57:41 2021 +0900
@@ -71,9 +71,9 @@
   printf("test5\n");
   Node* node = new Node();
   node->value = (union Data*)new Integer();
-  ((Integer*)node->value)->value = 8;
-  node->key = 8;
-  goto tree->remove(node,exit_code);
+  ((Integer*)node->value)->value = 0;
+  node->key = 7;
+  goto tree->get(rbTreeTest6);
 }
 
 __code rbTreeTest5_stub(struct Context* context) {
@@ -82,6 +82,19 @@
 }
 
 
+__code rbTreeTest6(struct Tree* tree) {
+  printf("test6\n");
+  Node* node = new Node();
+  node->value = (union Data*)new Integer();
+  ((Integer*)node->value)->value = 9;
+  node->key = 9;
+  goto tree->put(node,exit_code);
+}
+
+__code rbTreeTest6_stub(struct Context* context) {
+  Tree* tree = (struct Tree*)Gearef(context, Tree)->tree;
+  goto rbTreeTest6(context,tree);
+}
 
 int main(int argc, char const* argv[]) {
   printf("test_main\n");