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
Memory Allocation — general memory-handling
IO Channels — portable support for using files, pipes and sockets
Error Reporting
Warnings and Assertions
Message Logging