/* не читай, это размышления :Dupdate_2:WaitCondition тут не подойдёт... Ибо тебе как раз надо отказываться от него, изза паузы между посылами символов.*/
void run(){ exec();//<<< Вот эта функция должна запускаться для обработки сигналов, а ты после перегрузки функции ее не добавил.}