#include <atomic> #include "CountingPrivateSemaphore.hpp" #include "emper.hpp" static std::atomic_uint counter; static void increaseCounterByOne() { counter++; } static void mainFiber(void) { const unsigned int FIBER_COUNT = 100; CountingPrivateSemaphore cps; for (unsigned int i = 0; i < FIBER_COUNT; ++i) { spawn(&increaseCounterByOne, cps); } cps.wait(); if (counter != FIBER_COUNT) { exit(EXIT_FAILURE); } exit(EXIT_SUCCESS); } int main(UNUSED_ARG int arg, UNUSED_ARG char *argv[]) { Runtime runtime; async(&mainFiber); runtime.waitUntilFinished(); return EXIT_FAILURE; }