GLib Core Application Support

The Main Event Loop — manages all available sources of events
Threads — portable support for threads, mutexes, locks, 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
Memory Slices — efficient way to allocate groups of equal-sized chunks of memory
IO Channels — portable support for using files, pipes and sockets
Error Reporting — a system for reporting errors
Warnings and Assertions — warnings and assertions to use in runtime code
Message Output and Debugging Functions — functions to output messages and help debug applications