Also memory should always be allocated/released from the same thread. There is no guarentee that multiple threads will be using the same heap.