GLib Core Application Support

The Main Event Loop — manages all available sources of events.
Threads — thread abstraction; including threads, different mutexes, conditions and thread private data.
Thread Pools — pools of threads to execute work concurrently.
Asynchronous Queues — asynchronous communication between threads.
Dynamic Loading of Modules — portable method for dynamically loading 'plug-ins'.
Memory Allocation — general memory-handling.
IO Channels — portable support for using files, pipes and sockets.
Error Reporting — a system for reporting errors.
Message Output and Debugging Functions — functions to output messages and help debug applications.
Message Logging — versatile support for logging messages with different levels of importance.