auto t = std::thread([&finished, &buffer] {
AB ab;
ab.a = 0;
ab.b = UINT64_MAX;
uint64_t counter = 0; do {
buffer.write(ab);
ab.a++;
ab.b--;
} while (counter++ < 1e6 && ab.a <= UINT64_MAX && ab.b != 0);
finished.store(true);
});
AB ab;
AB old_ab;
old_ab.a = 0;
old_ab.b = UINT64_MAX;
// Wait to have at least one value produced. while (!buffer.updated()) {
}
// Check that the values are increasing (resp. descreasing) monotonically. while (!finished) {
ab = buffer.read();
ASSERT_GE(ab.a, old_ab.a);
ASSERT_LE(ab.b, old_ab.b);
old_ab = ab;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.