void np_srv_destroy(Npsrv *srv) { np_tpool_decref (srv->tpool); np_tpool_cleanup (srv); np_usercache_destroy (srv); np_ctl_finalize (srv); free (srv); }
void np_srv_destroy(Npsrv *srv) { np_tpool_decref (srv->tpool); np_tpool_cleanup (srv); np_usercache_destroy (srv); np_net_shutdown (srv->netroot); np_assert_srv = NULL; free (srv); }
static Npfid * _destroy_fid (Npfid *f) { Npsrv *srv; Npfid *next; NP_ASSERT(f != NULL); NP_ASSERT(f->magic == FID_MAGIC); srv = f->conn->srv; next = f->next; if (f->refcount > 0 && (srv->flags & SRV_FLAGS_DEBUG_FIDPOOL)) { np_logmsg (srv, "_destroy_fid: fid %d has %d refs", f->fid, f->refcount); } if ((f->type & P9_QTAUTH)) { if (srv->auth && srv->auth->clunk) (*srv->auth->clunk)(f); } else if ((f->type & P9_QTTMP)) { np_ctl_fiddestroy (f); } else { if (srv->fiddestroy) (*srv->fiddestroy)(f); } if (f->user) np_user_decref(f->user); if (f->tpool) np_tpool_decref(f->tpool); if (f->aname) free (f->aname); pthread_mutex_destroy (&f->lock); f->magic = FID_MAGIC_FREED; free(f); return next; }