[asterisk-commits] dhubbard: branch dhubbard/named_processors r107011 - in /team/dhubbard/named_...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sat Mar 8 22:32:16 CST 2008


Author: dhubbard
Date: Sat Mar  8 22:32:16 2008
New Revision: 107011

URL: http://svn.digium.com/view/asterisk?view=rev&rev=107011
Log:
module unload crashing fixed, thanks russell

Modified:
    team/dhubbard/named_processors/res/res_testobserver.c
    team/dhubbard/named_processors/res/sandbox/simobject.c
    team/dhubbard/named_processors/res/sandbox/taskprocessor.c

Modified: team/dhubbard/named_processors/res/res_testobserver.c
URL: http://svn.digium.com/view/asterisk/team/dhubbard/named_processors/res/res_testobserver.c?view=diff&rev=107011&r1=107010&r2=107011
==============================================================================
--- team/dhubbard/named_processors/res/res_testobserver.c (original)
+++ team/dhubbard/named_processors/res/res_testobserver.c Sat Mar  8 22:32:16 2008
@@ -64,7 +64,7 @@
 static const char config[] = "testobserver.conf";
   
 #define MAX_TEST_PROCESSORS 4
-#define MAX_TEST_PRODUCERS  0
+#define MAX_TEST_PRODUCERS  20
 struct simobject* simprod[MAX_TEST_PRODUCERS];
 
 AST_MUTEX_DEFINE_STATIC(_global_killflag_lock);
@@ -223,11 +223,14 @@
 	
 	ast_log(LOG_NOTICE, "-- testobserver -- unloading.\n");
 	unregister_sandbox_taskprocessor_clis();
-	for (count=MAX_TEST_PRODUCERS; count > 0; count--) {
-		((struct simobject*)simprod[count-1])->stop(s);
-	}
-	for (count=MAX_TEST_PROCESSORS; count > 0; count--) {
-		snprintf(tbuf, sizeof(tbuf), "sillyprocessor-%d", count-1);
+	for (count=0; count < MAX_TEST_PRODUCERS; count++) {
+		s = (struct simobject *)simprod[count];
+		if ( s ) { 
+			s->stop(s);
+		}
+	}
+	for (count=0; count < MAX_TEST_PROCESSORS; count++) {
+		snprintf(tbuf, sizeof(tbuf), "sillyprocessor-%d", count);
 		ast_log(LOG_NOTICE, "-- testobserver -- unloading %s\n", tbuf);
 		if (exists_taskprocessor_singleton(tbuf)) {
 			if (stop_taskprocessor_singleton(tbuf) < 0) {

Modified: team/dhubbard/named_processors/res/sandbox/simobject.c
URL: http://svn.digium.com/view/asterisk/team/dhubbard/named_processors/res/sandbox/simobject.c?view=diff&rev=107011&r1=107010&r2=107011
==============================================================================
--- team/dhubbard/named_processors/res/sandbox/simobject.c (original)
+++ team/dhubbard/named_processors/res/sandbox/simobject.c Sat Mar  8 22:32:16 2008
@@ -267,6 +267,9 @@
 			release_task(t);
 			break;
 		}
+		ast_mutex_lock(&i->_taskprocessor_lock);
+		killflag = !i->_poll_thread_run;
+		ast_mutex_unlock(&i->_taskprocessor_lock);
 	}
 	ast_log(LOG_NOTICE, "purging \'%s\'.\n", i->_name);
 	i->_is_purged = TRUE;

Modified: team/dhubbard/named_processors/res/sandbox/taskprocessor.c
URL: http://svn.digium.com/view/asterisk/team/dhubbard/named_processors/res/sandbox/taskprocessor.c?view=diff&rev=107011&r1=107010&r2=107011
==============================================================================
--- team/dhubbard/named_processors/res/sandbox/taskprocessor.c (original)
+++ team/dhubbard/named_processors/res/sandbox/taskprocessor.c Sat Mar  8 22:32:16 2008
@@ -213,7 +213,6 @@
 	index = size_of_taskprocessor_singleton_list();
 	ast_log(LOG_DEBUG, "found taskprocessor %s at index %d\n", name, index);
 	pthread_attr_init(&_attribute[index]);
-	//pthread_attr_setdetachstate(&_attribute[index], PTHREAD_CREATE_DETACHED);
 	/* stay stopped if we are supposed to be stopped */
 	if (p->_poll_thread == AST_PTHREADT_STOP) {
 		ast_log(LOG_DEBUG, "poll thread == AST_PTHREADT_STOP.\n");
@@ -236,7 +235,7 @@
 			return -1;
 		}
 	}
-	//pthread_attr_destroy(&_attribute[index]);
+	pthread_attr_destroy(&_attribute[index]);
 	ast_mutex_unlock(&p->_taskprocessor_lock);
 	ast_log(LOG_DEBUG, "taskprocessor \'%s\' at 0x%ld constructed with poll frequency: %d\n", name, (unsigned long)p, p->_poll_freq);
 	return 0;




More information about the asterisk-commits mailing list