Использование glib без вызова g_main_loop_run?

Правильно ли использовать (части) GLib без вызова g_main_loop_run? Если да, то как определить, какие части GLib я могу использовать следующим образом?

Я в основном заинтересован (как указано https://developer.gnome.org/glib/2.34/index.html):

  1. Типы данных GLib;
  2. GLib Утилиты.

Здравый смысл подсказывает мне, что там не должно быть ничего, чтобы требовать GMainLoop (кроме таймеров, может быть?), Но я полный новичок в GLib, и почему-то не нашел какого-либо явного утверждения в документах, когда требуется GMainLoop, а когда нет.,

В разделе "Поддержка основных приложений GLib" я хотел бы использовать ведение журнала сообщений, но не уверен в его взаимодействии с основным циклом.

Для тех, кто интересуется, почему, я использую FUSE/osxfuse, у которого уже есть основной цикл, и я не уверен, насколько легко его деконструировать и интегрировать в GMainLoop.

Кроме того, я приветствую альтернативные предложения библиотеки C. Просматривая документы GLib, мне это нравится, но я чувствую себя неловко из-за того, что пытаюсь стать основой, а не набором библиотек.

1 ответ

Решение

Очень мало кода GLib требует основного цикла, например, таймеры реализованы с использованием обычной системной метки времени.

Код, который требует основного цикла, будет ссылаться на него, например, на каналы ввода-вывода. Даже тогда вы можете видеть, что можно использовать каналы ввода-вывода с главным циклом или без него, это ваш выбор.

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