diff options
author | Dan Gudmundsson <[email protected]> | 2016-06-02 16:15:08 +0200 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2016-06-03 10:36:46 +0200 |
commit | 06fc37fdb5154af145480154e247637bf3ed427d (patch) | |
tree | 2733f063315697b374ab45536051954ce09d78da /lib/wx/src/wxe_util.erl | |
parent | 77b6b9a3c5d044a832ba36f8683bbe88279d8c88 (diff) | |
download | otp-06fc37fdb5154af145480154e247637bf3ed427d.tar.gz otp-06fc37fdb5154af145480154e247637bf3ed427d.tar.bz2 otp-06fc37fdb5154af145480154e247637bf3ed427d.zip |
wx: Change async error handling
Previously error from async functions made an exit when the next
sync call checked the message queue. This have been changed to an
error report instead since the errors where async there where really
hard to handle.
Also changed the error report format to make it easier to filter
them with a custom error_handler.
Diffstat (limited to 'lib/wx/src/wxe_util.erl')
-rw-r--r-- | lib/wx/src/wxe_util.erl | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/wx/src/wxe_util.erl b/lib/wx/src/wxe_util.erl index 3eaf6aebed..bbcd9a65ea 100644 --- a/lib/wx/src/wxe_util.erl +++ b/lib/wx/src/wxe_util.erl @@ -82,9 +82,11 @@ rec(Op) -> {'_wxe_error_', Op, Error} -> [{_,MF}] = ets:lookup(wx_debug_info,Op), erlang:error({Error, MF}); - {'_wxe_error_', Old, Error} -> - [{_,MF}] = ets:lookup(wx_debug_info,Old), - erlang:exit({Error, MF}) + {'_wxe_error_', Old, Error} -> + [{_,{M,F,A}}] = ets:lookup(wx_debug_info,Old), + Msg = io_lib:format("~p in ~w:~w/~w", [Error, M, F, A]), + wxe_master ! {wxe_driver, error, Msg}, + rec(Op) end. construct(Op, Args) -> |