subsurface/qt-models
Berthold Stoeger 769403a4b2 Planner: copy deco state before passing it to worker thread
The planner has a computeVariations() function that can be run
in a worker thread. The code was not thread safe: a deco_state
object allocated on the stack of the caller was passed down to
the worker thread. It's well possible that the object would go
out of scope before the thread run.

Therefore, when running in the background, copy the object first
and free it in the worker thread.

Side note: Qt makes proper memory management again as difficult
as possible: You can't pass a std::unique_ptr<> to QtConcurrent::run,
because move-only objects are not supported. Not very friendly!

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2019-10-20 16:20:58 +02:00
..
cleanertablemodel.cpp Cleanup: return directly from data() methods 2019-06-19 13:11:10 -07:00
cleanertablemodel.h Icons: cache small edit icon 2019-04-12 18:19:07 +03:00
CMakeLists.txt Create DivesiteImportDialog to select sites to import 2019-05-06 10:48:44 +02:00
completionmodels.cpp Cleanup: move tag functions into own translation unit 2019-06-19 13:11:10 -07:00
completionmodels.h Add SPDX header to Qt models 2017-04-29 13:32:55 -07:00
cylindermodel.cpp Core: pass dive, cylinder-id to fill_default_cylinder 2019-08-08 16:26:31 -07:00
cylindermodel.h Undo: don't send signals batched by trip 2019-06-23 20:08:46 +02:00
divecomputerextradatamodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
divecomputerextradatamodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
divecomputermodel.cpp Dive computers: turn QMultiMap into sorted vector 2018-06-17 06:53:13 +09:00
divecomputermodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
diveimportedmodel.cpp Import: remove DiveImportedModel::lastIndex 2019-10-02 08:04:49 -07:00
diveimportedmodel.h Import: remove DiveImportedModel::lastIndex 2019-10-02 08:04:49 -07:00
divelistmodel.cpp Cleanup: Turn DiveListSortModel into classical singleton 2019-10-04 09:19:10 -07:00
divelistmodel.h Cleanup: Make constructor of singletons private 2019-10-04 09:19:10 -07:00
divelocationmodel.cpp Location model: treat invalid indexes gracefully 2019-08-10 09:55:11 -07:00
divelocationmodel.h Dive sites: show dives at selected dive sites 2019-04-12 18:19:07 +03:00
divepicturemodel.cpp Write dive data as video subtitles 2019-04-16 20:38:19 +02:00
divepicturemodel.h Write dive data as video subtitles 2019-04-16 20:38:19 +02:00
diveplannermodel.cpp Planner: copy deco state before passing it to worker thread 2019-10-20 16:20:58 +02:00
diveplannermodel.h Planner: copy deco state before passing it to worker thread 2019-10-20 16:20:58 +02:00
diveplotdatamodel.cpp Profile: properly initialize plot_info structures 2019-08-28 07:10:09 -07:00
diveplotdatamodel.h Cleanup: move planner/deco related declarations planner/deco.h 2019-08-08 16:26:31 -07:00
divesiteimportmodel.cpp Create DivesiteImportDialog to select sites to import 2019-05-06 10:48:44 +02:00
divesiteimportmodel.h Create DivesiteImportDialog to select sites to import 2019-05-06 10:48:44 +02:00
divetripmodel.cpp Dive site: don't emit divesChanged signals when editing dive site 2019-09-06 11:48:47 -07:00
divetripmodel.h Dive site: don't emit divesChanged signals when editing dive site 2019-09-06 11:48:47 -07:00
filtermodels.cpp Cleanup: remove bogus assignment in startFilterDiveSites() 2019-09-21 16:07:24 -07:00
filtermodels.h Filter: add reference counting for dive-site mode 2019-05-11 12:06:19 -07:00
gpslistmodel.cpp Cleanup: turn GpsListModel into standard singleton 2019-10-04 09:19:10 -07:00
gpslistmodel.h Cleanup: Make constructor of singletons private 2019-10-04 09:19:10 -07:00
maplocationmodel.cpp Cleanup: remove redundant Roles:: qualifier in maplocationmodel.cpp 2019-09-06 11:48:47 -07:00
maplocationmodel.h Cleanup: remove default constructor from MapLocation 2019-09-06 11:48:47 -07:00
messagehandlermodel.cpp qt-models: Change Q_UNUSED to no parameter name 2018-05-21 12:48:04 -07:00
messagehandlermodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
models.cpp Cleanup: remove includes from qthelper.h 2019-07-18 05:42:55 -07:00
models.h Cleanup: remove includes from qt-models/models.h 2019-07-18 05:42:55 -07:00
tankinfomodel.cpp Cleanup: implement proper Qt-model semantics in TankInfoModel 2019-04-29 13:06:39 -07:00
tankinfomodel.h Cleanup: remove biggerString() functions 2019-04-29 13:06:39 -07:00
treemodel.cpp Cleanup: make DiveTripModel a global object 2018-09-01 07:48:43 -07:00
treemodel.h Cleanup: reinstate override modifiers 2018-09-29 15:23:25 -07:00
weightmodel.cpp Core: dynamically resize weight table 2019-07-18 06:01:07 -07:00
weightmodel.h Undo: don't send signals batched by trip 2019-06-23 20:08:46 +02:00
weightsysteminfomodel.cpp Cleanup: implement proper Qt-model semantics in WeightInfoModel 2019-04-29 13:06:39 -07:00
weightsysteminfomodel.h Cleanup: implement proper Qt-model semantics in WeightInfoModel 2019-04-29 13:06:39 -07:00
yearlystatisticsmodel.cpp Cleanup: make argument to YearStatisticsItem constructor a reference 2019-03-19 16:06:14 -07:00
yearlystatisticsmodel.h Show average max depth in yearly statistics 2018-12-17 12:18:26 +01:00