removed possible data race on boolean value (Not critical)

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5161 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2012-05-12 13:10:57 +00:00
parent dc2d6c975e
commit 02a7548de4

View File

@ -202,39 +202,46 @@ bool ExtAddrFinder::hasValidIP(struct in_addr *addr)
std::cerr << "ExtAddrFinder: Getting ip." << std::endl ;
#endif
if(*_found)
{
RsStackMutex mut(_addrMtx) ;
if(*_found)
{
#ifdef EXTADDRSEARCH_DEBUG
std::cerr << "ExtAddrFinder: Has stored ip: responding with this ip." << std::endl ;
std::cerr << "ExtAddrFinder: Has stored ip: responding with this ip." << std::endl ;
#endif
*addr = *_addr;
*addr = *_addr;
}
}
time_t delta;
{
RsStackMutex mut(_addrMtx) ;
//timeout the current ip
delta = time(NULL) - *mFoundTS;
}
//timeout the current ip
time_t delta = time(NULL) - *mFoundTS;
if((uint32_t)delta > MAX_IP_STORE) {//launch a research
if( _addrMtx.trylock())
{
if(!*_searching)
{
#ifdef EXTADDRSEARCH_DEBUG
std::cerr << "ExtAddrFinder: No stored ip: Initiating new search." << std::endl ;
#endif
*_searching = true ;
start_request() ;
}
#ifdef EXTADDRSEARCH_DEBUG
else
std::cerr << "ExtAddrFinder: Already searching." << std::endl ;
#endif
_addrMtx.unlock();
}
#ifdef EXTADDRSEARCH_DEBUG
else
std::cerr << "ExtAddrFinder: (Note) Could not acquire lock. Busy." << std::endl ;
#endif
if( _addrMtx.trylock())
{
if(!*_searching)
{
#ifdef EXTADDRSEARCH_DEBUG
std::cerr << "ExtAddrFinder: No stored ip: Initiating new search." << std::endl ;
#endif
*_searching = true ;
start_request() ;
}
#ifdef EXTADDRSEARCH_DEBUG
else
std::cerr << "ExtAddrFinder: Already searching." << std::endl ;
#endif
_addrMtx.unlock();
}
#ifdef EXTADDRSEARCH_DEBUG
else
std::cerr << "ExtAddrFinder: (Note) Could not acquire lock. Busy." << std::endl ;
#endif
}
RsStackMutex mut(_addrMtx) ;
return *_found ;
}