changeset 988:0034a63e9c85

commit to pull
author ichikitakahiro <e165713@ie.u-ryukyu.ac.jp>
date Thu, 28 Oct 2021 14:04:31 +0900
parents dd71859780b9
children 65066d677a13
files src/parallel_execution/CMakeLists.txt src/parallel_execution/examples/gearsFile/GearsFile.h src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc src/parallel_execution/examples/gearsFile/GearsFile_test.cbc
diffstat 4 files changed, 55 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/parallel_execution/CMakeLists.txt	Thu Oct 21 22:50:03 2021 +0900
+++ b/src/parallel_execution/CMakeLists.txt	Thu Oct 28 14:04:31 2021 +0900
@@ -188,19 +188,7 @@
       SingleLinkedQueue.cbc SynchronizedQueue.cbc AtomicReference.cbc examples/rbtTest_sync/rbTree_sync_test.cbc RedBlackTree.cbc SingleLinkedStack.cbc compare.c
 )
 
-GearsCommand(
-  TARGET
-     GHello
-  SOURCES
-     TaskManagerImpl.cbc CPUWorker.cbc SynchronizedQueue.cbc AtomicReference.cbc SingleLinkedStack.cbc examples/generics_hello/main.cbc examples/generics_hello/GHelloImpl.cbc examples/generics_hello/StringImpl.cbc
-)
 
-GearsCommand(
-  TARGET
-  newwc
-  SOURCES
-  TaskManagerImpl.cbc CPUWorker.cbc SynchronizedQueue.cbc AtomicReference.cbc SingleLinkedStack.cbc examples/new_wc/main.cbc examples/new_wc/WordPutImpl.cbc examples/new_wc/WordCountImpl.cbc
-)
 
 
 GearsCommand(
@@ -216,4 +204,14 @@
       rbtree_test1
   SOURCES
       test/rb_tree_test1.cbc TaskManagerImpl.cbc CPUWorker.cbc SynchronizedQueue.cbc AtomicReference.cbc SingleLinkedQueue.cbc RedBlackTree.cbc SingleLinkedStack.cbc compare.c
-)
\ No newline at end of file
+)
+
+
+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
+)
+   
\ No newline at end of file
--- a/src/parallel_execution/examples/gearsFile/GearsFile.h	Thu Oct 21 22:50:03 2021 +0900
+++ b/src/parallel_execution/examples/gearsFile/GearsFile.h	Thu Oct 28 14:04:31 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	Thu Oct 21 22:50:03 2021 +0900
+++ b/src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc	Thu Oct 28 14:04:31 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	Thu Oct 21 22:50:03 2021 +0900
+++ b/src/parallel_execution/examples/gearsFile/GearsFile_test.cbc	Thu Oct 28 14:04:31 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){