match callbacks and handler routines must atomically increment the corresponding counters on the scan_event structure they correspond to
scan manager and operator threads must perform high-level garbage collection on event caches periodically; events which are not actively running on any unit, and whose match count equals their handler count, are out of scope and may be dropped from the cache
all rscan queues holding Ruby object instances must report their contents to the global garbage collector to prevent them being reaped early- classes must have a mark function which iterates over the contents of the queue and calls rb_gc_mark() on event->self for each event
requirements: