mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 00:57:46 +08:00
c59e0d7c353129ca563eaba757ebe102316bc4d9
* fix(DBDriver): resolve lock-order inversion between dbSafeAccess and trashes mutexes emptyTrashes() acquired _dbSafeAccessMutex while holding _trashesMutex (M1->M0), whereas the load() path acquires _dbSafeAccessMutex and then, inside loadQuery()->getLastWordId(), acquires _trashesMutex (M0->M1). This opposite nesting forms a lock-order cycle that ThreadSanitizer flags as a potential deadlock. Acquire _dbSafeAccessMutex only after releasing _trashesMutex, matching the sequential 'look in trash, then database' pattern used by every other DBDriver accessor (getLastWordId, getLastMapId, getInvertedIndexNi, ...). Refs: #1765 * Fxing the actual deadlock * Added doc --------- Co-authored-by: matlabbe <[email protected]>
rtabmap
RTAB-Map library and standalone application.
- For more information (e.g., papers, major updates), visit RTAB-Map's home page.
- For installation instructions and examples, visit RTAB-Map's wiki.
- For the C++ API of the library, see the API documentation, which also lists all parameters and command-line tools.
To use RTAB-Map under ROS, visit the rtabmap page on the ROS wiki.
Acknowledgements
This project is supported by IntRoLab - Intelligent / Interactive / Integrated / Interdisciplinary Robot Lab, Sherbrooke, Québec, Canada.
CI Latest
|
|
ROS Binaries
ros-$ROS_DISTRO-rtabmap
| ROS 1 | Noetic | |
| ROS 2 | Humble | |
| Jazzy | ||
| Kilted | ||
| Lyrical | ||
| Rolling | ||
| Docker | rtabmap |
Languages
C++
63.8%
C
29.7%
CMake
1.7%
Java
1.5%
Swift
0.9%
Other
2.3%
