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 - "" = ""; -