X-Git-Url: http://git.indexdata.com/?p=simpleserver-moved-to-github.git;a=blobdiff_plain;f=SimpleServer.xs;h=34cbb9a99e95d5cb2097b8197d4a7a49e2fd8994;hp=859af5ca31ed29cbcfb1d323b8c2ec9080056ae1;hb=79f0264b1cce874e556595070b5407774072811b;hpb=5fb0dad3f05f5110f22c8027824ae3562c5c522d diff --git a/SimpleServer.xs b/SimpleServer.xs index 859af5c..34cbb9a 100644 --- a/SimpleServer.xs +++ b/SimpleServer.xs @@ -1,5 +1,5 @@ /* - * $Id: SimpleServer.xs,v 1.30 2004-06-05 23:09:04 adam Exp $ + * $Id: SimpleServer.xs,v 1.33 2004-06-07 17:00:55 adam Exp $ * ---------------------------------------------------------------------- * * Copyright (c) 2000-2004, Index Data. @@ -103,18 +103,20 @@ CV * simpleserver_sv2cv(SV *handler) { } /* debugging routine to check for destruction of Perl interpreters */ -#if 1 -int tst_clones(void) +#ifdef USE_ITHREADS +void tst_clones(void) { int i; PerlInterpreter *parent = PERL_GET_CONTEXT; - for (i = 0; i<500; i++) + for (i = 0; i<5000; i++) { PerlInterpreter *perl_interp; + PERL_SET_CONTEXT(parent); PL_perl_destruct_level = 2; - perl_interp = perl_clone(parent, 0); + perl_interp = perl_clone(parent, CLONEf_CLONE_HOST); PL_perl_destruct_level = 2; + PERL_SET_CONTEXT(perl_interp); perl_destruct(perl_interp); perl_free(perl_interp); } @@ -136,7 +138,7 @@ int simpleserver_clone(void) { if (!current) { PerlInterpreter *perl_interp; PERL_SET_CONTEXT( root_perl_context ); - perl_interp = perl_clone(root_perl_context, 0); + perl_interp = perl_clone(root_perl_context, CLONEf_CLONE_HOST); PERL_SET_CONTEXT( perl_interp ); } } @@ -1299,7 +1301,8 @@ void bend_close(void *handle) sv_free((SV*) href); } - sv_free(zhandle->handle); + else + sv_free(zhandle->handle); PUTBACK; FREETMPS; LEAVE;