Mercurial > hg > Gears > Gears
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){
--- 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");