SaladDais / Hippolyzer

Intercepting proxy + analysis toolkit for Second Life compatible virtual worlds
GNU Lesser General Public License v3.0
13 stars 5 forks source link

Prevent GUI paints from blocking proxy activity and vice-versa #22

Open SaladDais opened 2 years ago

SaladDais commented 2 years ago

Right now all code other than the mitmproxy wrapper runs in the same process and thread. This leads to issues where GUI paints can block proxy activity and vice-versa, mostly noticeable when a lot of messages are being logged at once.

On the one hand I don't normally notice the perf hit, and having everything on one thread allows writing relatively simple GUI code for addons without needing to use signals / slots (like the blueish object list.) On the other hand, a few people have told me that they disable the message log for perf reasons.

In the short term, it'd make sense to batch up additions to the message log list and only try to draw every 0.1 seconds, like we did before.

Longer-term, I'll have to come up with cross-thread implementations of the AddonManager.UI APIs using signals and slots, and figure out how to run UIs like the blueish object list in the UI thread.