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