Skip to content
Snippets Groups Projects
CppApiTest.cpp 609 B
Newer Older
  • Learn to ignore specific revisions
  • Florian Schmaus's avatar
    Florian Schmaus committed
    #include "emper.hpp"
    
    #include <atomic>
    
    #include "CountingPrivateSemaphore.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;
    }