Age | Commit message (Collapse) | Author |
|
If synced callbacks arrive early before the return value from
init had been synced to proc_lib. The callbacks where ignored.
Added a short timeout to avoid the scheduling raise but we don't want
block the wxe_server in case of deadlock in init, so sleep for a short
while and check again, and drop the callback when init takes to long.
|
|
The server might wait for the result of a call to disconnect_impl
which can now be delayed, that might cause a callback to never be
invoked and thus hang the driver thread.
To avoid that dispatch the disconnect_impl call from user process
instead of server.
|
|
Avoids spawn but can deadlock
|
|
|
|
The ddbe8a821ad commit was embarrassingly broken.
|
|
If a connect request was made during the takedown of wx it would crash.
|
|
Messages was routed via the wxe_server process, which caused process
to never get the message.
|
|
Remove the extra wxEvtListener that only caused confusion,
now everything is automatically cleaned up by the destructors
and event sent to erlang when it becomes delete for all cases.
|
|
Do not use disconnect event listener when we are exiting the port, it may
interfere with window destructions and cause a crash.
|
|
Event handlers was not removed after objects/process had been
delete/died, which causes memory leakage and that fun's was
kept in the wx_server process. Code that might be purged and
the server died.
|
|
|
|
Add {silent_start, boolean()} option to wx:new/1 in order to be able
to suppress error messages during startup of wx.
|
|
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.
|
|
Previously other process wx calls where allowed to execute in the
callback code, but that lead to a deadlock if for example a dialog
was created.
|
|
|