You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by st...@apache.org on 2004/11/24 20:33:52 UTC

svn commit: r106451 - /perl/modperl/trunk/src/modules/perl/modperl_global.c /perl/modperl/trunk/src/modules/perl/modperl_global.h

Author: stas
Date: Wed Nov 24 11:33:52 2004
New Revision: 106451

URL: http://svn.apache.org/viewcvs?view=rev&rev=106451
Log:
replace the slow implementation of anon handlers using B::Deparse,
with per-interpreter cache of compiled CODE refs (sort of emulating
named subroutines for anonymous handlers) / part2

Modified:
   perl/modperl/trunk/src/modules/perl/modperl_global.c
   perl/modperl/trunk/src/modules/perl/modperl_global.h

Modified: perl/modperl/trunk/src/modules/perl/modperl_global.c
Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_global.c?view=diff&rev=106451&p1=perl/modperl/trunk/src/modules/perl/modperl_global.c&r1=106450&p2=perl/modperl/trunk/src/modules/perl/modperl_global.c&r2=106451
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_global.c	(original)
+++ perl/modperl/trunk/src/modules/perl/modperl_global.c	Wed Nov 24 11:33:52 2004
@@ -165,6 +165,38 @@
 MP_GLOBAL_IMPL(pconf, apr_pool_t *);
 MP_GLOBAL_IMPL(server_rec, server_rec *);
 
+
+
+
+
+/*** anon handlers code ***/
+
+static modperl_global_t MP_global_anon_cnt;
+
+void modperl_global_anon_cnt_init(apr_pool_t *p)
+{
+    int *data = (int *)apr_pcalloc(p, sizeof(int));
+    *data = 0;
+    modperl_global_init(&MP_global_anon_cnt, p, (void *)data, "anon_cnt");
+}
+
+int modperl_global_anon_cnt_next(void)
+{
+    int next;
+    /* XXX: inline lock/unlock? */
+    modperl_global_lock(&MP_global_anon_cnt); 
+    
+    next = ++*(int *)(MP_global_anon_cnt.data);
+
+    modperl_global_unlock(&MP_global_anon_cnt); 
+
+    return next;
+}
+
+
+
+/*** TLS ***/
+
 #if MP_THREADED
 static apr_status_t modperl_tls_cleanup(void *data)
 {

Modified: perl/modperl/trunk/src/modules/perl/modperl_global.h
Url: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_global.h?view=diff&rev=106451&p1=perl/modperl/trunk/src/modules/perl/modperl_global.h&r1=106450&p2=perl/modperl/trunk/src/modules/perl/modperl_global.h&r2=106451
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_global.h	(original)
+++ perl/modperl/trunk/src/modules/perl/modperl_global.h	Wed Nov 24 11:33:52 2004
@@ -63,6 +63,9 @@
 /* modperl_global_get_server_rec returns a thread un-safe object */
 MP_GLOBAL_DECL(server_rec, server_rec *);
 
+void modperl_global_anon_cnt_init(apr_pool_t *p);
+int modperl_global_anon_cnt_next(void);
+
 apr_status_t modperl_tls_create(apr_pool_t *p, modperl_tls_t **key);
 apr_status_t modperl_tls_get(modperl_tls_t *key, void **data);
 apr_status_t modperl_tls_set(modperl_tls_t *key, void *data);

Re: svn commit: r106451 - /perl/modperl/trunk/src/modules/perl/modperl_global.c /perl/modperl/trunk/src/modules/perl/modperl_global.h

Posted by Stas Bekman <st...@stason.org>.
stas@apache.org wrote:
[...]
> +
> +
> +
> +
> +/*** anon handlers code ***/
> +
> +static modperl_global_t MP_global_anon_cnt;
> +
> +void modperl_global_anon_cnt_init(apr_pool_t *p)
[...]
> +
> +
> +
> +/*** TLS ***/
[...]

what do you think about embedding some whitespace between groups of 
functions in the C code? So far we were sticking to one line separators. I 
think it makes the code more readable, especially in the files full of 
macros (like modperl_global.c). If you don't like it, I'll drop the extra 
lines...

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org