static void update_ct_zones(struct sset *lports, struct hmap *patched_datapaths, struct simap *ct_zones, unsigned long *ct_zone_bitmap) { struct simap_node *ct_zone, *ct_zone_next; int scan_start = 1; struct patched_datapath *pd; const char *user; struct sset all_users = SSET_INITIALIZER(&all_users); SSET_FOR_EACH(user, lports) { sset_add(&all_users, user); }
if (!recurse) { size_t i; recurse = 1; for (i = 0; i < n_hooks; i++) { struct hook *h = &hooks[i]; if (sig_nr || h->run_at_exit) { h->hook_cb(h->aux); } } } } /* Files to delete on exit. */ static struct sset files = SSET_INITIALIZER(&files); /* Has a hook function been registered with fatal_signal_add_hook() (and not * cleared by fatal_signal_fork())? */ static bool added_hook; static void unlink_files(void *aux); static void cancel_files(void *aux); static void do_unlink_files(void); /* Registers 'file' to be unlinked when the program terminates via exit() or a * fatal signal. */ void fatal_signal_add_file_to_unlink(const char *file) { if (!added_hook) {