diff --git a/src/sbbs3/js_rtpool.c b/src/sbbs3/js_rtpool.c index 29da99172cb362b9f607784cf2080f7e385e2561..8e375500f32643d1bfd62d1c10c85696e5a4406c 100644 --- a/src/sbbs3/js_rtpool.c +++ b/src/sbbs3/js_rtpool.c @@ -126,3 +126,22 @@ void DLLCALL jsrt_Release(JSRuntime *rt) } #endif } + +void DLLCALL jsrt_TriggerAll(void) +{ +#ifdef USE_JS_OPERATION_CALLBACK + int i; + int j; + JSContext *iterp,*cx; + + for(i=0; i<JSRT_QUEUE_SIZE; i++) { + pthread_mutex_lock(&jsrt_mutex); + if(jsrt_queue[i].used) { + iterp=NULL; + while((cx = JS_ContextIterator(jsrt_queue[i].rt, &iterp)) != NULL) + JS_TriggerOperationCallback(cx); + } + pthread_mutex_unlock(&jsrt_mutex); + } +#endif +} diff --git a/src/sbbs3/js_rtpool.h b/src/sbbs3/js_rtpool.h index 22a48a6b6f61184431e03fe76a9c75eab63b2e3c..e320071ca25970aa37fa104d358040613bd3d32c 100644 --- a/src/sbbs3/js_rtpool.h +++ b/src/sbbs3/js_rtpool.h @@ -38,6 +38,7 @@ extern "C" { #endif DLLEXPORT JSRuntime * DLLCALL jsrt_GetNew(int maxbytes, unsigned long timeout, const char *filename, long line); DLLEXPORT void DLLCALL jsrt_Release(JSRuntime *); +DLLEXPORT void DLLCALL jsrt_TriggerAll(void); #if defined(__cplusplus) } #endif