Библиотека GLib предназначена в том числе для использование в программах с несколькими тредами; она “MT safe” (multi-thread safe). Но, оказывается, под “MT safe” дорогие разработчики GNOME/GTK понимают вот что. Предположим, я работаю с какими-нибудь объектами для хранения данных, скажем, хэш-таблицами (GHashTable). Так вот, если в разных тредах работаю с разными хэш-таблицами, то это безопасно. А если я в разных тредах работаю с одной и той же хэш-таблицей, то я должен сам координировать доступ, и не допускать к ней два треда одновременно, иначе попортят мне все данные.
Что-то мне это “MT safe” не кажется очень safe.
Но хорошо; пусть так; но хоть бы где-то объяснили это нормально! В документации об этом ни слова, а в исходниках GHashTable написано только, что она “MT safe”. Откуда я должен знать, что доступ к хэш-таблицам надо закрывать мьютексами или замками? прочитать это в гороскопе, может быть?