On Jul 23, 2009 at 19:59, Dragos Vingarzan <[email protected]> wrote: [...] > - sip-router_pt.diff > - added a drop_my_process() function - in the cdp module (Diameter) > we do have dynamic processes, which fork and exit distinctly from the > ser ones, so we need this to clean-up. Without it, such usages would not > be possible as the process table would fill and then new forks would be > denied
That's very problematic. It breaks process_no, my_pid() and the assumption that the process number does not change. These assumptions are used when doing statistics (e.g. tm): a shared mem array is created with one "entry" for each process. Each process updates its own entry (e.g. tm_stats[process_no].s.t_created++ ) without needing any locking or atomic op (which scale very badly on multi-cpus due to cacheline ping-pongs). The same assumptions are used in the shm malloc ng (only testing prototypes for now in ll_malloc) and might be used in the future for implementing a RCU like mechanism. Andrei _______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
