2026-08-02 01:36:11 +00:00
<!-- HTML header for doxygen 1.9.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "en-US" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" />
< meta http-equiv = "X-UA-Compatible" content = "IE=11" />
< meta name = "generator" content = "Doxygen 1.9.8" />
< meta name = "viewport" content = "width=device-width, initial-scale=1" />
< title > RTAB-Map: UMutex Class Reference</ title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" />
< script type = "text/javascript" src = "jquery.js" ></ script >
< script type = "text/javascript" src = "dynsections.js" ></ script >
2026-08-02 07:56:38 +00:00
< link href = "navtree.css" rel = "stylesheet" type = "text/css" />
< script type = "text/javascript" src = "resize.js" ></ script >
< script type = "text/javascript" src = "navtreedata.js" ></ script >
< script type = "text/javascript" src = "navtree.js" ></ script >
2026-08-02 01:36:11 +00:00
< link href = "search/search.css" rel = "stylesheet" type = "text/css" />
< script type = "text/javascript" src = "search/searchdata.js" ></ script >
< script type = "text/javascript" src = "search/search.js" ></ script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" />
2026-08-02 17:35:14 +00:00
< link href = "doxygen-awesome.css" rel = "stylesheet" type = "text/css" />
< link href = "custom.css" rel = "stylesheet" type = "text/css" />
2026-08-02 01:36:11 +00:00
< script type = "text/javascript" > window . RTABMAP_DOC_ROOT = "" ;</ script >
< script type = "text/javascript" src = "../versions.js" ></ script >
< script type = "text/javascript" src = "version-switcher.js" ></ script >
2026-08-02 17:35:14 +00:00
< script type = "text/javascript" src = "doxygen-awesome-darkmode-toggle.js" ></ script >
< script type = "text/javascript" > DoxygenAwesomeDarkModeToggle . init ();</ script >
2026-08-02 01:36:11 +00:00
</ head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr id = "projectrow" >
< td id = "projectalign" >
< div id = "projectname" > RTAB-Map< span id = "projectnumber" >   0.23.10</ span >
</ div >
2026-08-02 07:56:38 +00:00
< div id = "projectbrief" > Real-Time Appearance-Based Mapping</ div >
2026-08-02 01:36:11 +00:00
</ td >
</ tr >
</ tbody >
</ table >
</ div >
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox ( "searchBox" , "search/" , '.html' );
/* @license-end */
</ script >
< script type = "text/javascript" src = "menudata.js" ></ script >
< script type = "text/javascript" src = "menu.js" ></ script >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$ ( function () {
initMenu ( '' , true , false , 'search.php' , 'Search' );
$ ( document ). ready ( function () { init_search (); });
});
/* @license-end */
</ script >
< div id = "main-nav" ></ div >
2026-08-02 07:56:38 +00:00
</ div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" ></ div >
</ div >
</ div >
< div id = "splitbar" style = "-moz-user-select:none;"
class = "ui-resizable-handle" >
</ div >
</ div >
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$ ( document ). ready ( function (){ initNavTree ( 'classUMutex.html' , '' ); initResizable (); });
/* @license-end */
</ script >
< div id = "doc-content" >
2026-08-02 01:36:11 +00:00
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover = "return searchBox.OnSearchSelectShow()"
onmouseout = "return searchBox.OnSearchSelectHide()"
onkeydown = "return searchBox.OnSearchSelectKey(event)" >
</ div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< div id = "MSearchResults" >
< div class = "SRPage" >
< div id = "SRIndex" >
< div id = "SRResults" ></ div >
< div class = "SRStatus" id = "Loading" > Loading...</ div >
< div class = "SRStatus" id = "Searching" > Searching...</ div >
< div class = "SRStatus" id = "NoMatches" > No Matches</ div >
</ div >
</ div >
</ div >
</ div >
< div class = "header" >
< div class = "summary" >
< a href = "#pub-methods" > Public Member Functions</ a > |
< a href = "classUMutex-members.html" > List of all members</ a > </ div >
< div class = "headertitle" >< div class = "title" > UMutex Class Reference</ div ></ div >
</ div > <!--header-->
< div class = "contents" >
< p >< code > #include < < a class = "el" href = "UMutex_8h_source.html" > UMutex.h</ a > > </ code ></ p >
< table class = "memberdecls" >
< tr class = "heading" >< td colspan = "2" >< h2 class = "groupheader" >< a id = "pub-methods" name = "pub-methods" ></ a >
Public Member Functions</ h2 ></ td ></ tr >
< tr class = "memitem:a292198fffdbd7d0d5a550946f156f70e" id = "r_a292198fffdbd7d0d5a550946f156f70e" >< td class = "memItemLeft" align = "right" valign = "top" >   </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classUMutex.html#a292198fffdbd7d0d5a550946f156f70e" > UMutex</ a > ()</ td ></ tr >
< tr class = "separator:a292198fffdbd7d0d5a550946f156f70e" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:af42d27a9379e6872e8cf2e5e171e820c" id = "r_af42d27a9379e6872e8cf2e5e171e820c" >< td class = "memItemLeft" align = "right" valign = "top" > int  </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classUMutex.html#af42d27a9379e6872e8cf2e5e171e820c" > lock</ a > () const</ td ></ tr >
< tr class = "separator:af42d27a9379e6872e8cf2e5e171e820c" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:a6237fbb3142023f92c11989b13207c32" id = "r_a6237fbb3142023f92c11989b13207c32" >< td class = "memItemLeft" align = "right" valign = "top" > int  </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classUMutex.html#a6237fbb3142023f92c11989b13207c32" > lockTry</ a > () const</ td ></ tr >
< tr class = "separator:a6237fbb3142023f92c11989b13207c32" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
< tr class = "memitem:a4c5b4e04ad4e2f0eda2e8d4325d45d38" id = "r_a4c5b4e04ad4e2f0eda2e8d4325d45d38" >< td class = "memItemLeft" align = "right" valign = "top" > int  </ td >< td class = "memItemRight" valign = "bottom" >< a class = "el" href = "classUMutex.html#a4c5b4e04ad4e2f0eda2e8d4325d45d38" > unlock</ a > () const</ td ></ tr >
< tr class = "separator:a4c5b4e04ad4e2f0eda2e8d4325d45d38" >< td class = "memSeparator" colspan = "2" >   </ td ></ tr >
</ table >
< a name = "details" id = "details" ></ a >< h2 class = "groupheader" > Detailed Description</ h2 >
< div class = "textblock" >< p > A mutex class.</ p >
< p > On a < a class = "el" href = "classUMutex.html#af42d27a9379e6872e8cf2e5e171e820c" > lock()</ a > call, the calling thread is blocked if the < a class = "el" href = "classUMutex.html" > UMutex</ a > was previously locked by another thread. It is unblocked when < a class = "el" href = "classUMutex.html#a4c5b4e04ad4e2f0eda2e8d4325d45d38" > unlock()</ a > is called.</ p >
< p > On Unix (not yet tested on Windows), < a class = "el" href = "classUMutex.html" > UMutex</ a > is recursive: the same thread can call multiple times < a class = "el" href = "classUMutex.html#af42d27a9379e6872e8cf2e5e171e820c" > lock()</ a > without being blocked.</ p >
< p > Example: </ p >< div class = "fragment" >< div class = "line" >< a class = "code hl_class" href = "classUMutex.html" > UMutex</ a > m; < span class = "comment" > // Mutex shared with another thread(s).</ span ></ div >
< div class = "line" > ...</ div >
< div class = "line" > m.< a class = "code hl_function" href = "classUMutex.html#af42d27a9379e6872e8cf2e5e171e820c" > lock</ a > ();</ div >
< div class = "line" >< span class = "comment" > // Data is protected here from the second thread</ span ></ div >
< div class = "line" >< span class = "comment" > //(assuming the second one protects also with the same mutex the same data).</ span ></ div >
< div class = "line" > m.< a class = "code hl_function" href = "classUMutex.html#a4c5b4e04ad4e2f0eda2e8d4325d45d38" > unlock</ a > ();</ div >
< div class = "ttc" id = "aclassUMutex_html" >< div class = "ttname" >< a href = "classUMutex.html" > UMutex</ a ></ div >< div class = "ttdef" >< b > Definition</ b > < a href = "UMutex_8h_source.html#l00054" > UMutex.h:55</ a ></ div ></ div >
< div class = "ttc" id = "aclassUMutex_html_a4c5b4e04ad4e2f0eda2e8d4325d45d38" >< div class = "ttname" >< a href = "classUMutex.html#a4c5b4e04ad4e2f0eda2e8d4325d45d38" > UMutex::unlock</ a ></ div >< div class = "ttdeci" > int unlock() const</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "UMutex_8h_source.html#l00120" > UMutex.h:120</ a ></ div ></ div >
< div class = "ttc" id = "aclassUMutex_html_af42d27a9379e6872e8cf2e5e171e820c" >< div class = "ttname" >< a href = "classUMutex.html#af42d27a9379e6872e8cf2e5e171e820c" > UMutex::lock</ a ></ div >< div class = "ttdeci" > int lock() const</ div >< div class = "ttdef" >< b > Definition</ b > < a href = "UMutex_8h_source.html#l00088" > UMutex.h:88</ a ></ div ></ div >
</ div > <!-- fragment --> < dl class = "section see" >< dt > See also</ dt >< dd >< a class = "el" href = "classUSemaphore.html" > USemaphore</ a > </ dd ></ dl >
< p class = "definition" > Definition at line < a class = "el" href = "UMutex_8h_source.html#l00054" > 54</ a > of file < a class = "el" href = "UMutex_8h_source.html" > UMutex.h</ a > .</ p >
</ div >< h2 class = "groupheader" > Constructor & Destructor Documentation</ h2 >
< a id = "a292198fffdbd7d0d5a550946f156f70e" name = "a292198fffdbd7d0d5a550946f156f70e" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#a292198fffdbd7d0d5a550946f156f70e" > ◆  </ a ></ span > UMutex()</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > UMutex::UMutex </ td >
< td > (</ td >
< td class = "paramname" ></ td >< td > )</ td >
< td ></ td >
</ tr >
</ table >
</ td >
< td class = "mlabels-right" >
< span class = "mlabels" >< span class = "mlabel" > inline</ span ></ span > </ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > The constructor. </ p >
< p class = "definition" > Definition at line < a class = "el" href = "UMutex_8h_source.html#l00062" > 62</ a > of file < a class = "el" href = "UMutex_8h_source.html" > UMutex.h</ a > .</ p >
</ div >
</ div >
< a id = "a59091525e96a7427dee7531bd4b75f82" name = "a59091525e96a7427dee7531bd4b75f82" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#a59091525e96a7427dee7531bd4b75f82" > ◆  </ a ></ span > ~UMutex()</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > virtual UMutex::~UMutex </ td >
< td > (</ td >
< td class = "paramname" ></ td >< td > )</ td >
< td ></ td >
</ tr >
</ table >
</ td >
< td class = "mlabels-right" >
< span class = "mlabels" >< span class = "mlabel" > inline</ span >< span class = "mlabel" > virtual</ span ></ span > </ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p class = "definition" > Definition at line < a class = "el" href = "UMutex_8h_source.html#l00075" > 75</ a > of file < a class = "el" href = "UMutex_8h_source.html" > UMutex.h</ a > .</ p >
</ div >
</ div >
< h2 class = "groupheader" > Member Function Documentation</ h2 >
< a id = "af42d27a9379e6872e8cf2e5e171e820c" name = "af42d27a9379e6872e8cf2e5e171e820c" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#af42d27a9379e6872e8cf2e5e171e820c" > ◆  </ a ></ span > lock()</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > int UMutex::lock </ td >
< td > (</ td >
< td class = "paramname" ></ td >< td > )</ td >
< td > const</ td >
</ tr >
</ table >
</ td >
< td class = "mlabels-right" >
< span class = "mlabels" >< span class = "mlabel" > inline</ span ></ span > </ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > Lock the mutex. </ p >< dl class = "section return" >< dt > Returns</ dt >< dd > 0 on success, an error code otherwise. </ dd ></ dl >
< p class = "definition" > Definition at line < a class = "el" href = "UMutex_8h_source.html#l00088" > 88</ a > of file < a class = "el" href = "UMutex_8h_source.html" > UMutex.h</ a > .</ p >
</ div >
</ div >
< a id = "a6237fbb3142023f92c11989b13207c32" name = "a6237fbb3142023f92c11989b13207c32" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#a6237fbb3142023f92c11989b13207c32" > ◆  </ a ></ span > lockTry()</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > int UMutex::lockTry </ td >
< td > (</ td >
< td class = "paramname" ></ td >< td > )</ td >
< td > const</ td >
</ tr >
</ table >
</ td >
< td class = "mlabels-right" >
< span class = "mlabels" >< span class = "mlabel" > inline</ span ></ span > </ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > Try locking the mutex. </ p >< dl class = "section return" >< dt > Returns</ dt >< dd > 0 if the mutex has been locked by this call, EBUSY (or another error code) otherwise. </ dd ></ dl >
< p class = "definition" > Definition at line < a class = "el" href = "UMutex_8h_source.html#l00110" > 110</ a > of file < a class = "el" href = "UMutex_8h_source.html" > UMutex.h</ a > .</ p >
</ div >
</ div >
< a id = "a4c5b4e04ad4e2f0eda2e8d4325d45d38" name = "a4c5b4e04ad4e2f0eda2e8d4325d45d38" ></ a >
< h2 class = "memtitle" >< span class = "permalink" >< a href = "#a4c5b4e04ad4e2f0eda2e8d4325d45d38" > ◆  </ a ></ span > unlock()</ h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "mlabels" >
< tr >
< td class = "mlabels-left" >
< table class = "memname" >
< tr >
< td class = "memname" > int UMutex::unlock </ td >
< td > (</ td >
< td class = "paramname" ></ td >< td > )</ td >
< td > const</ td >
</ tr >
</ table >
</ td >
< td class = "mlabels-right" >
< span class = "mlabels" >< span class = "mlabel" > inline</ span ></ span > </ td >
</ tr >
</ table >
</ div >< div class = "memdoc" >
< p > Unlock the mutex. </ p >< dl class = "section return" >< dt > Returns</ dt >< dd > 0 on success, an error code otherwise. </ dd ></ dl >
< p class = "definition" > Definition at line < a class = "el" href = "UMutex_8h_source.html#l00120" > 120</ a > of file < a class = "el" href = "UMutex_8h_source.html" > UMutex.h</ a > .</ p >
</ div >
</ div >
< hr /> The documentation for this class was generated from the following file:< ul >
< li > utilite/include/rtabmap/utilite/< a class = "el" href = "UMutex_8h_source.html" > UMutex.h</ a ></ li >
</ ul >
</ div > <!-- contents -->
2026-08-02 07:56:38 +00:00
</ div > <!-- doc-content -->
2026-08-02 01:36:11 +00:00
<!-- start footer part -->
2026-08-02 07:56:38 +00:00
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
< li class = "navelem" >< a class = "el" href = "classUMutex.html" > UMutex</ a ></ li >
< li class = "footer" > Generated by < a href = "https://www.doxygen.org/index.html" >< img class = "footer" src = "doxygen.svg" width = "104" height = "31" alt = "doxygen" /></ a > 1.9.8 </ li >
</ ul >
</ div >
2026-08-02 01:36:11 +00:00
</ body >
</ html >