As objects are cleared out from the extraction queue, they are not being completely cleaned out of memory. This leaves behind pointers to other blocks of memory that are never cleared out. Over a very short time this can lead to large memory leaks depending on the number of object extractions taking place. The longer its allowed to go on, the worse it gets. This can also lead to crashes when the invalid pointers are accessed and the data is no longer available. To top things off, the memory cleanup function used at shutdown could produce false memory problems in valgrind.