From 07b18dde80fe630f543dae41e22ffd1581b06f95 Mon Sep 17 00:00:00 2001 From: cxl Date: Fri, 1 May 2020 08:36:01 +0000 Subject: [PATCH] .reference git-svn-id: svn://ultimatepp.org/upp/trunk@14413 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- reference/CoWorkCoDo/CoWorkCoDo.upp | 11 +++++++++++ reference/{CoWorkLoop => CoWorkCoDo}/CoWorkLoop.cpp | 9 ++++----- reference/CoWorkLoop/CoWorkLoop.upp | 11 ----------- 3 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 reference/CoWorkCoDo/CoWorkCoDo.upp rename reference/{CoWorkLoop => CoWorkCoDo}/CoWorkLoop.cpp (75%) delete mode 100644 reference/CoWorkLoop/CoWorkLoop.upp diff --git a/reference/CoWorkCoDo/CoWorkCoDo.upp b/reference/CoWorkCoDo/CoWorkCoDo.upp new file mode 100644 index 000000000..07e67eafc --- /dev/null +++ b/reference/CoWorkCoDo/CoWorkCoDo.upp @@ -0,0 +1,11 @@ +description "Demonstrates CoDo parallelization\377"; + +uses + Core; + +file + CoWorkLoop.cpp; + +mainconfig + "" = ""; + diff --git a/reference/CoWorkLoop/CoWorkLoop.cpp b/reference/CoWorkCoDo/CoWorkLoop.cpp similarity index 75% rename from reference/CoWorkLoop/CoWorkLoop.cpp rename to reference/CoWorkCoDo/CoWorkLoop.cpp index b7eba5fab..cf0bcd568 100644 --- a/reference/CoWorkLoop/CoWorkLoop.cpp +++ b/reference/CoWorkCoDo/CoWorkLoop.cpp @@ -14,18 +14,17 @@ CONSOLE_APP_MAIN } double sum = 0; - CoWork co; - co * [&] { + std::atomic ii(0); + CoDo([&] { double m = 0; - int i; - while((i = co.Next()) < data.GetCount()) { + for(int i = ii++; i < data.GetCount(); i = ii++) { CParser p(data[i]); while(!p.IsEof()) m += p.ReadDouble(); } CoWork::FinLock(); sum += m; - }; + }); RDUMP(sum); } diff --git a/reference/CoWorkLoop/CoWorkLoop.upp b/reference/CoWorkLoop/CoWorkLoop.upp deleted file mode 100644 index 0079d4d8a..000000000 --- a/reference/CoWorkLoop/CoWorkLoop.upp +++ /dev/null @@ -1,11 +0,0 @@ -description "Demonstrates Loop (aka operator *) method\377"; - -uses - Core; - -file - CoWorkLoop.cpp; - -mainconfig - "" = ""; -