diff options
author | Dan Gudmundsson <[email protected]> | 2011-12-02 16:26:45 +0100 |
---|---|---|
committer | Dan Gudmundsson <[email protected]> | 2011-12-06 10:13:49 +0100 |
commit | 8b6f6db0f5faddc970a7867aecdb03f3cde5fa78 (patch) | |
tree | 9a1798efd7150d9f416d2d32180dc4be5cac3732 /lib/wx/src/gen/wxEvtHandler.erl | |
parent | 50b488753358d38348f2d4051bfcea8d860e739b (diff) | |
download | otp-8b6f6db0f5faddc970a7867aecdb03f3cde5fa78.tar.gz otp-8b6f6db0f5faddc970a7867aecdb03f3cde5fa78.tar.bz2 otp-8b6f6db0f5faddc970a7867aecdb03f3cde5fa78.zip |
[wx] Avoid deadlock in handle_sync_event
Avoid sending cb messages to the wx_object, since it may deadlock.
Instead send it to the wxe_server which reads the state from the wx_object's
process_dictionary.
Ugly but it's the only way I can avoid the deadlock.
Diffstat (limited to 'lib/wx/src/gen/wxEvtHandler.erl')
-rw-r--r-- | lib/wx/src/gen/wxEvtHandler.erl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/wx/src/gen/wxEvtHandler.erl b/lib/wx/src/gen/wxEvtHandler.erl index f155351b66..820c2b7a58 100644 --- a/lib/wx/src/gen/wxEvtHandler.erl +++ b/lib/wx/src/gen/wxEvtHandler.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2010. All Rights Reserved. +%% Copyright Ericsson AB 2008-2011. All Rights Reserved. %% %% The contents of this file are subject to the Erlang Public License, %% Version 1.1, (the "License"); you may not use this file except in @@ -95,7 +95,7 @@ parse_opts([{callback,Fun}|R], Opts) when is_function(Fun) -> %% Check Fun Arity? parse_opts(R, Opts#evh{cb=Fun}); parse_opts([callback|R], Opts) -> - parse_opts(R, Opts#evh{cb=1}); + parse_opts(R, Opts#evh{cb=self()}); parse_opts([{userData, UserData}|R],Opts) -> parse_opts(R, Opts#evh{userdata=UserData}); parse_opts([{skip, Skip}|R],Opts) when is_boolean(Skip) -> |