Reorganizing REPO

git-svn-id: svn://ultimatepp.org/upp/trunk@11631 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2017-12-26 10:28:32 +00:00
parent 11d9ba9e65
commit afb3d587da
83 changed files with 10859 additions and 10821 deletions

View file

@ -0,0 +1,33 @@
#include "Tutorial.h"
void CoLoopTutorial()
{
/// .CoWork loop method
/// An alternative to `CoPartition` is 'loop' method of `CoWork` (`Loop` method with synonym
/// `operator*`). In this pattern, the job is simply started in all threads and the code is
/// responsible for scheduling the work. `Loop` / `operator*` waits for all started threads
/// to finish. For scheduling, it is possible to use internal `CoWork` index counter,
/// which is set to 0 at the start of `Loop` / `operator*`. This way, the overhead associated
/// with creating lambdas and scheduling them is kept to the minimum.
Vector<String> data;
for(int i = 0; i < 100; i++)
data.Add(AsString(1.0 / i));
double sum = 0;
CoWork co;
co * [&] {
int i;
double m = 0;
while((i = co.Next()) < data.GetCount())
m += atof(data[i]);
CoWork::FinLock();
sum += m;
};
DUMP(sum);
///
}