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