added thread count to cmd_netinfo
authorpk910 <philipp@zoelle1.de>
Fri, 13 Jan 2012 16:41:32 +0000 (17:41 +0100)
committerpk910 <philipp@zoelle1.de>
Fri, 13 Jan 2012 16:41:32 +0000 (17:41 +0100)
src/cmd_global_netinfo.c
src/main.c
src/main.h

index e7d6b94913b1e9bca6e07b239f6393cb47352b0f..1e68aaaff48e5fd6dccb87440af54ebb0cb6daed 100644 (file)
@@ -25,7 +25,7 @@ CMD_BIND(global_cmd_netinfo) {
     reply(getTextBot(), user, "NS_NETINFO_HEADER");
     char tmp[MAXLEN];
     struct Table *table;
-    table = table_init(2, 18, 0);
+    table = table_init(2, 19, 0);
     char *content[2];
     
     content[0] = get_language_string(user, "NS_NETINFO_UPTIME");
@@ -144,6 +144,13 @@ CMD_BIND(global_cmd_netinfo) {
     content[1] = tmp;
     table_add(table, content);
     
+    #ifdef HAVE_THREADS
+    content[0] = get_language_string(user, "NS_NETINFO_THREADS");
+    sprintf(tmp, "%d (current tid: %lu)", running_threads, syscall(SYS_gettid));
+    content[1] = tmp;
+    table_add(table, content);
+    #endif
+    
     if(strcmp(revision, ""))
         sprintf(tmp, "%s.%d  (%s)", NEONSERV_VERSION, patchlevel, revision);
     else 
index 60b7ec6ac4b37fb9e1f5f08f95ea29a0c02b176b..a1b7161f90f9ecf84a8aaca37b88ba9f27592414 100644 (file)
@@ -42,6 +42,9 @@ static int running, hard_restart;
 static int statistics_requested_lusers = 0;
 int statistics_enabled;
 TIMEQ_CALLBACK(main_statistics);
+#ifdef HAVE_THREADS
+int running_threads;
+#endif
 
 void cleanup() {
     free_sockets();
@@ -106,6 +109,7 @@ void * thread_main(void *arg) {
         destroyEvents();
         queue_loop();
     }
+    running_threads--;
     return NULL;
 }
 #endif
@@ -160,11 +164,13 @@ main:
     pthread_t tid[worker_threads];
     int tid_id = 0;
     for(tid_id = 0; tid_id < worker_threads; tid_id++) {
+        running_threads++;
         pthread_create(&tid[tid_id], NULL, thread_main, NULL);
     }
     for(tid_id = 0; tid_id < worker_threads; tid_id++) {
         pthread_join(tid[tid_id], NULL);
     }
+    running_threads = 0;
     #else
     time_t socket_wait;
     while(running) {
index 879f46c5c70852be87521c10f2d1e7fda5082ea7..d3a5ec2d445b4a193030fd042e9b1bae7f3320f6 100644 (file)
@@ -43,6 +43,8 @@
 #include <sys/time.h>
 #include <time.h>
 #ifdef HAVE_THREADS
+#include <pthread.h>
+#include <sys/syscall.h>
 #define THREAD_MUTEX_INIT(var) { \
     pthread_mutexattr_t mutex_attr; \
     pthread_mutexattr_init(&mutex_attr);\
@@ -51,7 +53,6 @@
 }
 #define SYNCHRONIZE(var) pthread_mutex_lock(&var)
 #define DESYNCHRONIZE(var) pthread_mutex_unlock(&var)
-#include <pthread.h>
 #else
 #define THREAD_MUTEX_INIT(var)
 #define SYNCHRONIZE(var)
 
 extern time_t start_time;
 extern int statistics_enabled;
+#ifdef HAVE_THREADS
+extern int running_threads;
+#endif
 
 int stricmp (const char *s1, const char *s2);
 int stricmplen (const char *s1, const char *s2, int len);