perl plugin: Added debugging output to display the ithread behavior.
authorSebastian Harl <sh@tokkee.org>
Wed, 14 Nov 2007 13:19:42 +0000 (14:19 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Wed, 14 Nov 2007 14:32:21 +0000 (15:32 +0100)
Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/perl.c

index 889ab56..fbbe591 100644 (file)
@@ -91,6 +91,11 @@ typedef struct {
        c_ithread_t *head;
        c_ithread_t *tail;
 
+#if COLLECT_DEBUG
+       /* some usage stats */
+       int number_of_threads;
+#endif /* COLLECT_DEBUG */
+
        pthread_mutex_t mutex;
 } c_ithread_list_t;
 
@@ -749,6 +754,10 @@ static c_ithread_t *c_ithread_create (PerlInterpreter *base)
                ? NULL
                : perl_clone (base, CLONEf_KEEP_PTR_TABLE);
 
+#if COLLECT_DEBUG
+       ++perl_threads->number_of_threads;
+#endif /* COLLECT_DEBUG */
+
        t->next = NULL;
 
        if (NULL == perl_threads->tail) {
@@ -784,6 +793,9 @@ static int perl_init (void)
 
                aTHX = t->interp;
        }
+
+       log_debug ("perl_init: c_ithread: interp = %p (active threads: %i)\n",
+                       aTHX, perl_threads->number_of_threads);
        return pplugin_call_all (aTHX_ PLUGIN_INIT);
 } /* static int perl_init (void) */
 
@@ -803,6 +815,9 @@ static int perl_read (void)
 
                aTHX = t->interp;
        }
+
+       log_debug ("perl_read: c_ithread: interp = %p (active threads: %i)\n",
+                       aTHX, perl_threads->number_of_threads);
        return pplugin_call_all (aTHX_ PLUGIN_READ);
 } /* static int perl_read (void) */
 
@@ -822,6 +837,9 @@ static int perl_write (const data_set_t *ds, const value_list_t *vl)
 
                aTHX = t->interp;
        }
+
+       log_debug ("perl_write: c_ithread: interp = %p (active threads: %i)\n",
+                       aTHX, perl_threads->number_of_threads);
        return pplugin_call_all (aTHX_ PLUGIN_WRITE, ds, vl);
 } /* static int perl_write (const data_set_t *, const value_list_t *) */
 
@@ -869,6 +887,9 @@ static int perl_shutdown (void)
                aTHX = t->interp;
        }
 
+       log_debug ("perl_shutdown: c_ithread: interp = %p (active threads: %i)\n",
+                       aTHX, perl_threads->number_of_threads);
+
        plugin_unregister_log ("perl");
        plugin_unregister_init ("perl");
        plugin_unregister_read ("perl");