#include #include #include #include "bench.h" coroutine GreatSuspender {}; void ?{}( GreatSuspender & this ) { prime(this); } void main( GreatSuspender & this ) { while( true ) { suspend(); } } void resumer( GreatSuspender & this, const unsigned int NoOfTimes ) { for ( volatile unsigned int i = 0; i < NoOfTimes; i += 1 ) { resume( this ); } } int main() { const unsigned int NoOfTimes = N; long long int StartTime, EndTime; GreatSuspender s; StartTime = Time(); resumer( s, NoOfTimes ); EndTime = Time(); sout | ( EndTime - StartTime ) / NoOfTimes | endl; }