Как переключиться на другой поток, когда текущий поток зависает?

Я использую GDB, и что-то вроде следующего:

thread_2()
{
    // do something
    wait_thread_1_to_wake_me_up();
    // do something
}

thread_1()
{
    // do something
    create_thread_2();

    // do something
    wake_thread_2_up();

    // do something
    join();
}

моя проблема в том, когда я использую GDB и set scheduler-locking on, если мой текущий поток является thread_2, когда он зависает wait_thread_1_to_wake_me_up()как я мог теперь переключиться на thread_1?

Поскольку текущим потоком является thread_2, и он зависает, я не могу ввести что-либо подобное ``thread 1".

Это действительно раздражает меня, кто-нибудь, кто знает, как это сделать? Или какие-то другие умные идеи, чтобы избавиться от этого?

Спасибо!

0 ответов

Другие вопросы по тегам