GLib 2.22 is a stable release adding an incremental improvement in functionality over GLib 2.20 while maintaining binary and source compatibility. Major changes include:
- The requirements for g_thread_init() have been relaxed slightly, it can be called multiple times, and does not have to be the first call. GObject now links to GThread and threads are enabled automatically when g_type_init() is called. Thread-safety issuesvwith boxed types in GObject have been fixed. The -pthread flag has been added to all gmodule .pc files, because it is not generally permissible to load modules that are linked against libpthread if the program has not been compiled with threading support.
- GType now has a G_DEFINE_INTERFACE convenience macro
- GIO supports lazy loading of GIO modules, and there is a new gio-querymodule utility that goes along with this. Packagers will need to adapt to this.
- GIO uses splice(2) to transfer data between file descriptors without extraneous copies.
- The GVariant variant datatype has been added.