CVSROOT: /cvs Module name: src Changes by: d...@cvs.openbsd.org 2016/06/02 21:59:43
Modified files: sys/net : art.c art.h Log message: defer the freeing of art tables and nodes to a task. this will allow us to sleep in srp_finalize before freeing the memory. the defer is done by putting the tables and nodes on a list which is serviced by a task. the task removes all the entries from the list and pool_puts them. the art_tables gc code uses at_parent as its list entry, and the art_node gc code uses a union with the an_dst pointer. both at_parent and an_dst are only used when theyre active as part of an art data structure, and are not used in lookups. once the art is done with them we can reuse these pointers safely. ok mpi@