undef free and malloc for queue.h because it will be used outside of the main thread, and using redefined malloc() and free() not in the main thread is not safe at least on windows

http://www.perlmonks.org/?node_id=1101904
http://stackoverflow.com/questions/1543736/how-do-i-temporarily-disable-a-macro-expansion-in-c-c