Multithreading 通知线程退出时的所有线程在Cygwin GCC中不存在

Multithreading 通知线程退出时的所有线程在Cygwin GCC中不存在,multithreading,c++11,cygwin,condition-variable,Multithreading,C++11,Cygwin,Condition Variable,当我尝试使用GCC版本4.9.2在32位Cygwin中构建以下简单测试程序时,我得到一个错误,即: error: ‘notify_all_at_thread_exit’ is not a member of ‘std’ 这让我觉得这个特定的方法还没有移植到Cygwin。有人知道我是否做错了什么,或者我是否能确定这确实是Cygwin遗漏的 建造线: /usr/bin/c++.exe -std=gnu++11 -o NotifyAllAtThreadExitTest.cc.o -c Notify

当我尝试使用GCC版本4.9.2在32位Cygwin中构建以下简单测试程序时,我得到一个错误,即:

error: ‘notify_all_at_thread_exit’ is not a member of ‘std’
这让我觉得这个特定的方法还没有移植到Cygwin。有人知道我是否做错了什么,或者我是否能确定这确实是Cygwin遗漏的

建造线:

 /usr/bin/c++.exe -std=gnu++11 -o NotifyAllAtThreadExitTest.cc.o -c NotifyAllAtThreadExitTest.cc
代码段:

#include <mutex>
#include <thread>
#include <condition_variable>

std::mutex m;
std::condition_variable cv;

bool ready = false;

void thread_func()
{
    std::unique_lock<std::mutex> lk(m);
    ready = true;
    std::notify_all_at_thread_exit(cv, std::move(lk));
}

int test()
{
    std::thread t(thread_func);
    t.detach();

    std::unique_lock<std::mutex> lk(m);
    while(!ready) {
        cv.wait(lk);
    }
}

在4.9发行版系列中,libstdc++没有实现。事实上,它将出现在gcc 5.0版本中。

,我相信这是一个Linux环境。问题似乎不是Cygwin特有的,但libstdc++本身在4.9.2.Ah中的线程退出时缺少notify_all_,这是有道理的。谢谢你,凯西!