I don't know about the memory allocator, but wouldn't you need a polling library to listen for signals and not block?