Получение сигнала от дочернего процесса Python с использованием GLib - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь контролировать то, как мой курсор выглядит в определенные моменты выполнения моей программы. Чтобы указать c, я хочу, чтобы он был "прядильщиком" при выполнении сценария Python, а затем стандартным указателем, когда он завершился. Прямо сейчас у меня есть обратный вызов leave-event-notify в Glade, который изменяет счетчик, когда он покидает определенную область, но это не идеально, поскольку пользователь может не знать, как перемещать курсор, а курсор не точно представляет состояние программы.

Моя программа Python сигнализирует SIGUSR1 в конце выполнения. Я создаю сценарий Python из файла C, используя g_spawn_async_with_pipes GLib. Есть ли способ поймать сигнал от дочернего процесса, который это создает? Спасибо!

1 Ответ

0 голосов
/ 05 августа 2020

Передайте флаг G_SPAWN_DO_NOT_REAP_CHILD команде g_spawn_async_with_pipes(), а затем вызовите g_child_watch_add(), чтобы получить уведомление, когда ваш подпроцесс Python завершится. Вам не нужно беспокоиться о SIGUSR1, если процесс завершается, когда он завершен.

Трудно дать более конкретный c ответ, если вы не опубликуете минимально воспроизводимый пример вашего кода.

...