tohojo / flent

The FLExible Network Tester.
https://flent.org
Other
428 stars 79 forks source link

gui: Don't try to redraw received plot if widget was removed #289

Closed mahsan76 closed 9 months ago

mahsan76 commented 9 months ago

@mahsan76 reports:

There is an issue in Flent 2.0.1 , after loading multiple test files ( e.g 5 or 6 ) and adding combining them, when i click close all tab , it works ok and all tabs are closed... but then when i want to open 5 or 6 files again , the process gets stuck with the following exception in ubuntu bash terminal:

######################################################################################### Exception in thread Thread-3: Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner self.run() File "/usr/lib/python3.9/threading.py", line 892, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python3.9/multiprocessing/pool.py", line 592, in _handle_results cache[job]._set(i, obj) File "/usr/lib/python3.9/multiprocessing/pool.py", line 776, in _set self._callback(self._value) File "/usr/share/flent/flent/gui.py", line 2329, in recv_plot self.new_plot.emit() RuntimeError: wrapped C/C++ object of type ResultWidget has been deleted

Fix this by keeping track of when a widget is destroyed, and cancel any plot updates after this happens.