Как стать автором
Обновить

Комментарии 24

Суховатый топик, без картинок.
Можно, конечно, устроить tits-эффект, но мне не хотелось бы, чтобы в пост заходили только из-за них самых. Всё-таки, пост рассчитан на сознательных людей, которые знают, на каких сайтах их искать. А тут хотят почитать статейки по программированию.

Если вас интересуют скриншоты вышеназванных программ, они имеются по ссылкам. А по теме поста — libunique — их сделать сложно.
Интересная статья, спасибо!

Программирование под линукс захватывающая тема.
Передача сообщений идет через d-bus, свой сокет или подсистему gtk? Вопрос совместимости и длины списка зависимостей.
Можно скомпилить с разными бэкендами — bacon или d-bus:

#ifdef HAVE_BACON
      if (strcmp (backend_name, "bacon") == 0)
        backend_gtype = unique_backend_bacon_get_type ();
#endif
#ifdef HAVE_DBUS
      if (strcmp (backend_name, "dbus") == 0)
        backend_gtype = unique_backend_dbus_get_type ();
#endif /* HAVE_DBUS */
#if !defined(HAVE_BACON) && !defined(HAVE_DBUS)
#error Need either bacon or dbus
#endif
А какая шина используется? Системная или сессионая? Это про d-bus
Сессионная, если не ошибаюсь.
Что такое BACON?
А… что мешает использовать стандартные средства создания единственного приложения? Всякие мьютексы и прочее? Или я неправ и такой подход уже устарел?
Да, в общем, ничто не мешает. :)
Эм… А зачем тогда эта либа? Какие еще у нее преимущества? Или смысл в том, что новичку не надо разбираться с этим? Ну так в этом случае он в чужие сорцы и не полезет. А если свое пишет — то, по-хорошему, такие вещи можно написать и быстро, и раз на всю жизнь.
А зачем тогда ваш коммент? Какие у него преимущества?
Это был вопрос, какие преимущества еще есть, кроме того, что не надо разбираться самому, как это делать.
Эта либа нужна для того же, для чего все остальные либы. Никто не заставляет Вас ими пользоваться. Можете и виджет календаря свой на libX11 написать. Хотя зачем Вам libX11?..

Какие ещё у неё преимущества?

Почему ещё? Я разве хоть одно назвал?
Одно — очевидно. Не надо разбираться в том, как это делать самому через мьютексы.
Понятно, что каждая либа создается для того, чтобы снять часть рутины (или решение сложной задачи) с плеч других разработчиков.
Именно. В том числе и эта либа.

Понятно, что если Вас не устраивает ситуация с зависимостями, которые придётся тянуть из-за этой либы, то надо придумывать своё решение. Но gtk и dbus у меня и так везде установлены, а либу на 300 КБ мне не жалко поставить.
если б эта либа хоть бы кросс-платформенная была…
Странно, но эти две цитаты ниже — от одного и того же человека.

Это SEGFAULT, не обращайте внимания.
if kill $(cat /tmp/traycal.pid) ; then
    echo "closed"
else
    echo $$ >/tmp/traycal.pid
    exec rxvt-unicode -hold +sb -fn 9x15 -geometry 21x9-0-0 -e cal
fi

use named mutex и минус одна либа в зависимостях ;)

см. www.ibm.com/developerworks/linux/library/l-ipc2lin3.html

Вообще, я бы однозначно заплюсовал статью про межпроцессовую/межтредовую синхронизацию в линуксе. Вот это реально интересно.
Named mutes это в Windows. В Linux это SysV семафоры — semget(). И тут остаётся открытым вопрос, как выбрать значение ключа, чтобы не было конфликтов с другими программами. А в предложенном способе эта проблема решена.

ftok()?

Я же говорю — отдельная статья на эту тему была бы в 100 раз интереснее! :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации