C++ coroutine implementation, only for LINUX and WINDOWS