diff options
author | Dan Gudmundsson <[email protected]> | 2016-06-21 09:38:10 +0200 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2016-06-21 09:38:10 +0200 |
commit | 23e8642fe9b2cf8ae77f8198cd332167421ff667 (patch) | |
tree | 59c7595ad65d555faab8eadec35a6233797641d8 /lib/wx/c_src | |
parent | b087c11c6051648a3026437ecc7c308f5ec3e310 (diff) | |
download | otp-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/c_src')
-rw-r--r-- | lib/wx/c_src/wxe_main.cpp | 6 |
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); |