aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Gudmundsson <dgud@erlang.org>2016-06-21 09:38:10 +0200
committerDan Gudmundsson <dgud@erlang.org>2016-06-21 09:38:10 +0200
commit23e8642fe9b2cf8ae77f8198cd332167421ff667 (patch)
tree59c7595ad65d555faab8eadec35a6233797641d8
parentb087c11c6051648a3026437ecc7c308f5ec3e310 (diff)
downloadotp-23e8642fe9b2cf8ae77f8198cd332167421ff667.tar.gz
otp-23e8642fe9b2cf8ae77f8198cd332167421ff667.tar.bz2
otp-23e8642fe9b2cf8ae77f8198cd332167421ff667.zip
Request a larger stacksize for wx thread
The default stacksize on Windows is 1MB which is not enough if you create many dialogs and callbacks recurse back to erlang. Increase the stacksize of 8MB which should be sufficent.
-rw-r--r--lib/wx/c_src/wxe_main.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/wx/c_src/wxe_main.cpp b/lib/wx/c_src/wxe_main.cpp
index 6fcde42eb5..c7565e33bd 100644
--- a/lib/wx/c_src/wxe_main.cpp
+++ b/lib/wx/c_src/wxe_main.cpp
@@ -67,6 +67,7 @@ int load_native_gui()
int start_native_gui(wxe_data *sd)
{
int res;
+ ErlDrvThreadOpts *opts = NULL;
wxe_status_m = erl_drv_mutex_create((char *) "wxe_status_m");
wxe_status_c = erl_drv_cond_create((char *)"wxe_status_c");
@@ -78,8 +79,11 @@ int start_native_gui(wxe_data *sd)
res = erl_drv_steal_main_thread((char *)"wxwidgets",
&wxe_thread,wxe_main_loop,(void *) sd->pdl,NULL);
#else
+ opts = erl_drv_thread_opts_create((char *)"wx thread");
+ opts->suggested_stack_size = 8192;
res = erl_drv_thread_create((char *)"wxwidgets",
- &wxe_thread,wxe_main_loop,(void *) sd->pdl,NULL);
+ &wxe_thread,wxe_main_loop,(void *) sd->pdl,opts);
+ erl_drv_thread_opts_destroy(opts);
#endif
if(res == 0) {
erl_drv_mutex_lock(wxe_status_m);