Как переключиться на другой поток, когда текущий поток зависает?
Я использую 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".
Это действительно раздражает меня, кто-нибудь, кто знает, как это сделать? Или какие-то другие умные идеи, чтобы избавиться от этого?
Спасибо!