diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index b7e5b3e96235789f1c2bee395f4d8d61de321db5..d3b9365c9db502677248c3a21b956f311861c45a 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -758,14 +758,14 @@ bool sbbs_t::js_init() return(false); lprintf("%s JavaScript: Initializing context (stack: %lu bytes)" - ,node,JAVASCRIPT_CONTEXT_STACK); + ,node,startup->js_cx_stack); - if((js_cx = JS_NewContext(js_runtime, JAVASCRIPT_CONTEXT_STACK))==NULL) + if((js_cx = JS_NewContext(js_runtime, startup->js_cx_stack))==NULL) return(false); - js_branch.limit = JAVASCRIPT_BRANCH_LIMIT; - js_branch.gc_interval = JAVASCRIPT_GC_INTERVAL; - js_branch.yield_interval = JAVASCRIPT_YIELD_INTERVAL; + js_branch.limit = startup->js_branch_limit; + js_branch.gc_interval = startup->js_gc_interval; + js_branch.yield_interval = startup->js_yield_interval; js_branch.counter = 0; /* loop counter */ js_branch.terminated = (BOOL*)&terminated; @@ -3551,6 +3551,7 @@ void DLLCALL bbs_thread(void* arg) if(startup->xtrn_polls_before_yield==0) startup->xtrn_polls_before_yield=10; #ifdef JAVASCRIPT if(startup->js_max_bytes==0) startup->js_max_bytes=JAVASCRIPT_MAX_BYTES; + if(startup->js_cx_stack==0) startup->js_cx_stack=JAVASCRIPT_CONTEXT_STACK; #endif if(startup->outbuf_drain_timeout==0) startup->outbuf_drain_timeout=10; if(startup->sem_chk_freq==0) startup->sem_chk_freq=5; diff --git a/src/sbbs3/services.h b/src/sbbs3/services.h index 346a1a93dd01fc4667b7d81b590fcd5e3c1854f2..b7068efe0fd2efdfb2963435fb52c1c9144edb35 100644 --- a/src/sbbs3/services.h +++ b/src/sbbs3/services.h @@ -50,6 +50,10 @@ typedef struct { DWORD interface_addr; DWORD options; /* See BBS_OPT definitions */ DWORD js_max_bytes; + DWORD js_cx_stack; + DWORD js_branch_limit; + DWORD js_yield_interval; + DWORD js_gc_interval; WORD sem_chk_freq; /* semaphore file checking frequency (in seconds) */ int (*lputs)(char*); /* Log - put string */ void (*status)(char*); diff --git a/src/sbbs3/startup.h b/src/sbbs3/startup.h index 268921c5e5655a9df4fe8ef5fdb1cc7931f50ed1..4920fce2d30e4efb4caa28c787e0814b22ce87f8 100644 --- a/src/sbbs3/startup.h +++ b/src/sbbs3/startup.h @@ -61,6 +61,10 @@ typedef struct { DWORD rlogin_interface; DWORD xtrn_polls_before_yield; DWORD js_max_bytes; + DWORD js_cx_stack; + DWORD js_branch_limit; + DWORD js_yield_interval; + DWORD js_gc_interval; RingBuf** node_spybuf; // Spy output buffer (each node) RingBuf** node_inbuf; // User input buffer (each node) sem_t** node_spysem; // Spy output semaphore (each node)