summaryrefslogtreecommitdiffhomepage
path: root/gui/main-window.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2017-04-06 01:53:59 +0200
committerStanislaw Halik <sthalik@misaki.pl>2017-04-06 04:21:41 +0200
commitfacfc0e2444e485d6e14b6b96462ef0acefb42c0 (patch)
tree298df22ddb9eb4c001521a9319f35e195e500905 /gui/main-window.cpp
parent2d4570810c861606c38330d90137d856b8862d02 (diff)
pose-widget: prevent races and serial execution
We actually need to use "mtx" with the condition variable and copy the data to the worker thread's stack. Also allow for synchronous pose update, for tracking stoppage.
Diffstat (limited to 'gui/main-window.cpp')
-rw-r--r--gui/main-window.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/gui/main-window.cpp b/gui/main-window.cpp
index 7efec930..ee963bd7 100644
--- a/gui/main-window.cpp
+++ b/gui/main-window.cpp
@@ -485,7 +485,7 @@ void MainWindow::stopTracker()
opts::set_teardown_flag(true); // XXX hack -sh 20160926
pose_update_timer.stop();
- ui.pose_display->rotateBy(0, 0, 0, 0, 0, 0);
+ ui.pose_display->rotate_sync(0,0,0, 0,0,0);
if (pTrackerDialog)
pTrackerDialog->unregister_tracker();
@@ -515,8 +515,8 @@ void MainWindow::display_pose(const double *mapped, const double *raw)
if (!work)
return;
- ui.pose_display->rotateBy(mapped[Yaw], mapped[Pitch], -mapped[Roll],
- mapped[TX], mapped[TY], mapped[TZ]);
+ ui.pose_display->rotate_async(mapped[Yaw], mapped[Pitch], -mapped[Roll],
+ mapped[TX], mapped[TY], mapped[TZ]);
if (mapping_widget)
mapping_widget->update();