Использование памяти не уменьшается при использовании free ()

Я пишу независимую от ОС очередь без блокировки, пока она отлично работает, но есть небольшая проблема с управлением памятью. Я не уверен, является ли это проблемой gcc или моей. Проблема: память увеличивается, когда элемент добавляется в список, но когда элемент удаляется из списка (free (elementPointer);) использование памяти don 'т изменить.

НО, когда я использую pthreads, N производителей и M потребителей(1