[Freeswitch-svn] [commit] r12567 - freeswitch/trunk/src

FreeSWITCH SVN anthm at freeswitch.org
Wed Mar 11 08:29:50 PDT 2009


Author: anthm
Date: Wed Mar 11 10:29:50 2009
New Revision: 12567

Log:
FSCORE-328

Modified:
   freeswitch/trunk/src/switch_core.c

Modified: freeswitch/trunk/src/switch_core.c
==============================================================================
--- freeswitch/trunk/src/switch_core.c	(original)
+++ freeswitch/trunk/src/switch_core.c	Wed Mar 11 10:29:50 2009
@@ -42,6 +42,7 @@
 #include <sys/resource.h>
 #endif
 #endif
+#include <errno.h>
 
 SWITCH_DECLARE_DATA switch_directories SWITCH_GLOBAL_dirs = { 0 };
 
@@ -792,7 +793,7 @@
 #ifndef __FreeBSD__
 	memset(&rlp, 0, sizeof(rlp));
 	rlp.rlim_cur = SWITCH_THREAD_STACKSIZE;
-	rlp.rlim_max = SWITCH_SYSTEM_THREAD_STACKSIZE;
+	rlp.rlim_max = SWITCH_THREAD_STACKSIZE;
 	setrlimit(RLIMIT_STACK, &rlp);
 #endif
 
@@ -1589,9 +1590,27 @@
 static void *SWITCH_THREAD_FUNC system_thread(switch_thread_t *thread, void *obj) 
 {
 	struct system_thread_handle *sth = (struct system_thread_handle *)obj;
+#if defined(HAVE_SETRLIMIT) && !defined(__FreeBSD__)
+	struct rlimit rlim;
+
+	rlim.rlim_cur = SWITCH_SYSTEM_THREAD_STACKSIZE;
+	rlim.rlim_max = SWITCH_SYSTEM_THREAD_STACKSIZE;
+	if (setrlimit(RLIMIT_STACK, &rlim) < 0) {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Setting stack size failed! (%s)\n", strerror(errno));
+	}
+#endif
 
 	sth->ret = system(sth->cmd);
 
+#if defined(HAVE_SETRLIMIT) && !defined(__FreeBSD__)
+	rlim.rlim_cur = SWITCH_THREAD_STACKSIZE;
+	rlim.rlim_max = SWITCH_SYSTEM_THREAD_STACKSIZE; 
+	if (setrlimit(RLIMIT_STACK, &rlim) < 0) {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Setting stack size failed! (%s)\n", strerror(errno));
+	}
+
+#endif
+
 	switch_mutex_lock(sth->mutex);
 	switch_thread_cond_signal(sth->cond);
 	switch_mutex_unlock(sth->mutex);
@@ -1608,18 +1627,6 @@
 	int ret = 0;
 	struct system_thread_handle *sth;
 	switch_memory_pool_t *pool;
-#if defined(HAVE_SETRLIMIT) && !defined(__FreeBSD__)
-	struct rlimit rlim;
-
-	rlim.rlim_cur = SWITCH_SYSTEM_THREAD_STACKSIZE;
-	rlim.rlim_max = SWITCH_SYSTEM_THREAD_STACKSIZE;
-
-	/**
-	if (setrlimit(RLIMIT_STACK, &rlim) < 0) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Setting stack size failed!\n");
-	}
-	**/
-#endif
 
 	if (switch_core_new_memory_pool(&pool) != SWITCH_STATUS_SUCCESS) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Pool Failure\n");
@@ -1643,17 +1650,6 @@
 	switch_threadattr_detach_set(thd_attr, 1);
 	switch_thread_create(&thread, thd_attr, system_thread, sth, sth->pool);
 
-
-#if defined(HAVE_SETRLIMIT) && !defined(__FreeBSD__)
-	rlim.rlim_cur = SWITCH_THREAD_STACKSIZE;
-	rlim.rlim_max = SWITCH_SYSTEM_THREAD_STACKSIZE;
-	/**
-	if (setrlimit(RLIMIT_STACK, &rlim) < 0) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Setting stack size failed!\n");
-	}
-	**/
-#endif
-
 	if (wait) {
 		switch_thread_cond_wait(sth->cond, sth->mutex);
 		ret = sth->ret;



More information about the Freeswitch-svn mailing list