Shouldn't we break if garbage.remove() is not called to eliminate spinning ?