Я пытаюсь угадать точное значение вашего вопроса.
Вы говорите, что у вас есть группа процессов, которую вы запускаете в приложении, некоторые из которых являются idelhandlers (то есть процессом, который вы запускаете, когда приложение ничего не делает), и idlehandlers никогда не запускаются, потому что другие процессы всегда работает?
Я понимаю, что обработчик бездействия состоит в том, что он будет запущен только тогда, когда в цикле приложения gtk больше нет событий для обработки. Если вы запускаете другой системный процесс (например, jackd), он не должен влиять на основной цикл приложения (так как эти процессы выполняются на системном уровне, а не в приложении).
Возможно ли, что у вас есть какой-то метод в основном приложении, который бы постоянно стрелял? (например, прослушиватель событий, который срабатывает каждую секунду)
Если это так, можно ли абстрагировать эти события в отдельный процесс, и только затем уведомлять основное приложение о необходимости обновления? Это должно затем позволить обработчикам idel быть запущенными.
Другое возможное решение - вы могли бы использовать методы тайм-аута вместо бездействующих. Если есть функции, которые вам нужно запускать чаще (скажем, каждые 10 мс или около того), тогда обработчик тайм-аута может быть лучше в любом случае.
К сожалению, без дополнительной информации о том, какие именно процессы вы выполняете и что вы пытаетесь обработать с помощью простоя, может быть трудно дать вам точный ответ.