* Garbage collection queuing rewriting * Some Tweaks * Fixes some queue tracking oddities * More tweaks * Remove the middle two queue steps. tis was a silly idea * New logging. We store logging datums for use in tracking the stats of shit qdeleted Added logging for destroy time as well as hard delete time, per type. As well as a few others * Fix compile for testing * Does the cyberboss * does the antur
25 lines
1.2 KiB
Plaintext
25 lines
1.2 KiB
Plaintext
//defines that give qdel hints. these can be given as a return in destory() or by calling
|
|
|
|
|
|
#define QDEL_HINT_QUEUE 0 //qdel should queue the object for deletion.
|
|
#define QDEL_HINT_LETMELIVE 1 //qdel should let the object live after calling destory.
|
|
#define QDEL_HINT_IWILLGC 2 //functionally the same as the above. qdel should assume the object will gc on its own, and not check it.
|
|
#define QDEL_HINT_HARDDEL 3 //qdel should assume this object won't gc, and queue a hard delete using a hard reference.
|
|
#define QDEL_HINT_HARDDEL_NOW 4 //qdel should assume this object won't gc, and hard del it post haste.
|
|
#define QDEL_HINT_FINDREFERENCE 5 //functionally identical to QDEL_HINT_QUEUE if TESTING is not enabled in _compiler_options.dm.
|
|
//if TESTING is enabled, qdel will call this object's find_references() verb.
|
|
//defines for the gc_destroyed var
|
|
|
|
#define GC_QUEUE_PREQUEUE 1
|
|
#define GC_QUEUE_CHECK 2
|
|
#define GC_QUEUE_HARDDELETE 3
|
|
#define GC_QUEUE_COUNT 3 //increase this when adding more steps.
|
|
|
|
#define GC_QUEUED_FOR_QUEUING -1
|
|
#define GC_QUEUED_FOR_HARD_DEL -2
|
|
#define GC_CURRENTLY_BEING_QDELETED -3
|
|
|
|
#define QDELING(X) (X.gc_destroyed)
|
|
#define QDELETED(X) (!X || QDELING(X))
|
|
#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
|