aboutsummaryrefslogtreecommitdiffstats
path: root/lib/wx
diff options
context:
space:
mode:
authorDan Gudmundsson <[email protected]>2016-06-21 09:38:10 +0200
committerDan Gudmundsson <[email protected]>2016-06-21 09:38:10 +0200
commit23e8642fe9b2cf8ae77f8198cd332167421ff667 (patch)
tree59c7595ad65d555faab8eadec35a6233797641d8 /lib/wx
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.
Diffstat (limited to 'lib/wx')
-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);