Mercurial > hg > Gears > Gears
changeset 989:65066d677a13
merge
author | ichikitakahiro <e165713@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 28 Oct 2021 14:06:45 +0900 |
parents | 0034a63e9c85 (diff) d855932884b7 (current diff) |
children | 0ee98fba0503 |
files | |
diffstat | 4 files changed, 55 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/src/parallel_execution/CMakeLists.txt Thu Oct 28 14:02:34 2021 +0900 +++ b/src/parallel_execution/CMakeLists.txt Thu Oct 28 14:06:45 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 28 14:02:34 2021 +0900 +++ b/src/parallel_execution/examples/gearsFile/GearsFile.h Thu Oct 28 14:06:45 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 28 14:02:34 2021 +0900 +++ b/src/parallel_execution/examples/gearsFile/GearsFileImpl.cbc Thu Oct 28 14:06:45 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 28 14:02:34 2021 +0900 +++ b/src/parallel_execution/examples/gearsFile/GearsFile_test.cbc Thu Oct 28 14:06:45 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){