X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Foserver%2Foserver.c;fp=ccan%2Foserver%2Foserver.c;h=ad8f31538ec31663c90624490217b1c6936f5294;hb=5cde12ca405f988a8a35b4281c90fbaf53f5464f;hp=c7a523c21ff121f9f0ace96895216e143d3d2131;hpb=e3096dff04758d433eb415f00d586d144b2ffea4;p=ccan-lca-2011.git diff --git a/ccan/oserver/oserver.c b/ccan/oserver/oserver.c index c7a523c..ad8f315 100644 --- a/ccan/oserver/oserver.c +++ b/ccan/oserver/oserver.c @@ -314,10 +314,16 @@ static void talloc_dump(struct tevent_context *ev, void *_oserver) { struct oserver *oserver = _oserver; - FILE *f = fopen("/var/run/oserver/talloc.dump", "w"); - if (f) { - talloc_report_full(oserver, f); - fclose(f); + FILE *f; + + /* Fork off a child for the report, so we aren't stopped. */ + if (fork() == 0) { + f = fopen("/var/run/oserver/talloc.dump", "w"); + if (f) { + talloc_report_full(oserver, f); + fclose(f); + } + _exit(0); } }