anchor.diff:  		log_game("Error: [type]([refID]) took longer than 1 second to delete (took [time/10] seconds to delete)")
   		message_admins("Error: [type]([refID]) took longer than 1 second to delete (took [time/10] seconds to delete).")
   		postpone(time)
  -
  -/datum/controller/subsystem/garbage/proc/HardQueue(datum/D)
  -	if (D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
  -		queues[GC_QUEUE_PREQUEUE] += D
  -		D.gc_destroyed = GC_QUEUED_FOR_HARD_DEL
   
   /datum/controller/subsystem/garbage/Recover()
   	if (istype(SSgarbage.queues))
  
positive.code: 
  	
  
  //If you see this proc high on the profile, what you are really seeing is the garbage collection/soft delete overhead in byond.
  //Don't attempt to optimize, not worth the effort.
  /datum/controller/subsystem/garbage/proc/HandlePreQueue()
  	var/list/tobequeued = queues[GC_QUEUE_PREQUEUE]
  	var/static/count = 0
  	if (count)
  		var/c = count
  		count = 0 //so if we runtime on the Cut, we don't try again.
  		tobequeued.Cut(1,c+1)
  
  	for (var/ref in tobequeued)
  		count++
  		Queue(ref, GC_QUEUE_PREQUEUE+1)
  		tobequeued[count] = null
  		if (MC_TICK_CHECK)
  			return
  	if (count)
  		tobequeued.Cut(1,count+1)
  		count = 0
  
  /datum/controller/subsystem/garbage/proc/HandleQueue(level = GC_QUEUE_CHECK)
  	if (level == GC_QUEUE_CHECK)
  
negative.code: 					testing("WARNING: [D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.")
  				#endif
  				I.no_hint++
  				SSgarbage.Queue(D)
  	else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
  		CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
  
  