[Freeswitch-svn] [commit] r7230 - freeswitch/trunk/src/mod/languages/mod_spidermonkey
Freeswitch SVN
anthm at freeswitch.org
Mon Jan 14 19:06:16 EST 2008
Author: anthm
Date: Mon Jan 14 19:06:15 2008
New Revision: 7230
Modified:
freeswitch/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
Log:
fix potential locking issue
Modified: freeswitch/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
==============================================================================
--- freeswitch/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c (original)
+++ freeswitch/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c Mon Jan 14 19:06:15 2008
@@ -38,6 +38,7 @@
#include <curl/curl.h>
#endif
static int foo = 0;
+static switch_mutex_t *mutex;
SWITCH_MODULE_LOAD_FUNCTION(mod_spidermonkey_load);
@@ -3404,6 +3405,7 @@
JSContext *cx = NULL;
jsval rval;
+ switch_mutex_lock(mutex);
if ((cx = JS_NewContext(globals.rt, globals.gStackChunkSize))) {
JS_BeginRequest(cx);
@@ -3423,7 +3425,7 @@
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Allocation Error!\n");
- return;
+ goto end;
}
script = input_code;
@@ -3448,11 +3450,17 @@
eval_some_js(buf, cx, javascript_global_object, &rval);
}
}
-
+
if (cx) {
eval_some_js(script, cx, javascript_global_object, &rval);
JS_DestroyContext(cx);
}
+
+ end:
+ switch_mutex_unlock(mutex);
+
+ return;
+
}
SWITCH_STANDARD_APP(js_dp_function)
@@ -3579,6 +3587,8 @@
curl_global_init(CURL_GLOBAL_ALL);
+ switch_mutex_init(&mutex, SWITCH_MUTEX_NESTED, pool);
+
/* indicate that the module should continue to be loaded */
return SWITCH_STATUS_SUCCESS;
}
More information about the Freeswitch-svn
mailing list