为什么这个程序会死锁?

时间:2021-06-23 10:58:45

标签: c++ deadlock

我有以下代码有时会产生死锁,有时不会。为什么会发生这种情况?在开始读取他的输出后,我关闭了子进程的输入流。

{       
        boost::process::ipstream out;
        boost::process::ipstream err;
        boost::process::opstream in;
        boost::process::child ch("/home/ivan/CLionProjects/BoostPractise/build/Boost.Test.sort",
                                 boost::process::std_in < in,
                                 boost::process::std_out > out,
                                 boost::process::std_err > err);
        in << dataSet.size();
        std::for_each(dataSet.begin(),dataSet.end(),
                      [&](int el){in << el << ' ';});

        in.close();

        auto t_start = std::chrono::high_resolution_clock::now();
        ch.wait_for(std::chrono::duration(std::chrono::seconds(TIME_LIMIT)));
}

0 个答案:

没有答案
相关问题