LINUX.ORG.RU

История изменений

Исправление anonymous2, (текущая версия) :

ничего подобного… утебя :mempool_t::~mempool_t который делает join которому скорей всего это делать не нужно. уметь правильно выходить из fork нужно учиться)

#include <chrono>
#include <thread>
#include <iostream>
#include <unistd.h>

using namespace std::chrono_literals;

int main()
{
    auto thr = std::thread([]()
    {
        for(int ii = 0; ii < 10; ++ii)
        {
            std::cout << "id: " << std::this_thread::get_id() << ", " << ii << std::endl;
            std::this_thread::sleep_for( 1s );
        }
    });

    int pid = fork();

    if(pid)
    {
        std::cout << "pid: " << pid <<std::endl;
        thr.join();
    }
    else
    {
        std::cout << (thr.joinable() ? "111" : "222") <<std::endl;
        execl("/bin/false", "/bin/false", nullptr);
    }

    return 0;
}

Исходная версия anonymous2, :

ничего подобного… уметь правильно выходить нужно учиться)

#include <chrono>
#include <thread>
#include <iostream>
#include <unistd.h>

using namespace std::chrono_literals;

int main()
{
    auto thr = std::thread([]()
    {
        for(int ii = 0; ii < 10; ++ii)
        {
            std::cout << "id: " << std::this_thread::get_id() << ", " << ii << std::endl;
            std::this_thread::sleep_for( 1s );
        }
    });

    int pid = fork();

    if(pid)
    {
        std::cout << "pid: " << pid <<std::endl;
        thr.join();
    }
    else
    {
        std::cout << (thr.joinable() ? "111" : "222") <<std::endl;
        execl("/bin/false", "/bin/false", nullptr);
    }

    return 0;
}