std::async from C++11 does not work

Ilya Razenshteyn
Wed Mar 16 00:00:00 GMT 2016

Hi all,

I'm trying to compile and run the below code. As a result, only one copy 
of "f" is being executed at a time, that is, no new threads are spawned. 
Does anyone know what's going on?

cygwin 2.4.1, gcc 5.3.0, compilation options are "g++ test.cpp -o test 
-O3 -Wall -std=c++11 -lpthread".


#include <future>
#include <iostream>

using namespace std;

void f(int id) {
   for (int i = 0; i < 100000; ++i) {
     cout << id << endl;

int main() {
   std::async(std::launch::async, &f, 1);
   std::async(std::launch::async, &f, 2);
   return 0;

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list