merged upstream/master

This commit is contained in:
csoler 2016-06-05 10:06:11 -04:00
commit c2ae4fc904
77 changed files with 524 additions and 389 deletions

View file

@ -120,6 +120,8 @@ void RetroDb::closeDb(){
#ifdef RETRODB_DEBUG
std::cerr << "RetroDb::closeDb(): Error code on close: " << rc << std::endl;
#else
(void)rc;
#endif
}

View file

@ -294,7 +294,7 @@ bool RsDirUtil::copyFile(const std::string& source,const std::string& dest)
fclose(in) ;
fclose(out) ;
return true ;
return bRet ;
#endif

View file

@ -951,7 +951,7 @@ bool sockaddr_storage_ipv4_isExternalNet(const struct sockaddr_storage &addr)
}
bool sockaddr_storage_ipv6_isnull(const struct sockaddr_storage &addr)
bool sockaddr_storage_ipv6_isnull(const struct sockaddr_storage &/*addr*/)
{
#ifdef SS_DEBUG
std::cerr << "sockaddr_storage_ipv6_isnull() TODO";
@ -961,7 +961,7 @@ bool sockaddr_storage_ipv6_isnull(const struct sockaddr_storage &addr)
return false;
}
bool sockaddr_storage_ipv6_isValidNet(const struct sockaddr_storage &addr)
bool sockaddr_storage_ipv6_isValidNet(const struct sockaddr_storage &/*addr*/)
{
#ifdef SS_DEBUG
std::cerr << "sockaddr_storage_ipv6_isValidNet() TODO";
@ -971,7 +971,7 @@ bool sockaddr_storage_ipv6_isValidNet(const struct sockaddr_storage &addr)
return false;
}
bool sockaddr_storage_ipv6_isLoopbackNet(const struct sockaddr_storage &addr)
bool sockaddr_storage_ipv6_isLoopbackNet(const struct sockaddr_storage &/*addr*/)
{
#ifdef SS_DEBUG
std::cerr << "sockaddr_storage_ipv6_isLoopbackNet() TODO";
@ -981,7 +981,7 @@ bool sockaddr_storage_ipv6_isLoopbackNet(const struct sockaddr_storage &addr)
return false;
}
bool sockaddr_storage_ipv6_isPrivateNet(const struct sockaddr_storage &addr)
bool sockaddr_storage_ipv6_isPrivateNet(const struct sockaddr_storage &/*addr*/)
{
#ifdef SS_DEBUG
std::cerr << "sockaddr_storage_ipv6_isPrivateNet() TODO";
@ -991,7 +991,7 @@ bool sockaddr_storage_ipv6_isPrivateNet(const struct sockaddr_storage &addr)
return false;
}
bool sockaddr_storage_ipv6_isExternalNet(const struct sockaddr_storage &addr)
bool sockaddr_storage_ipv6_isExternalNet(const struct sockaddr_storage &/*addr*/)
{
#ifdef SS_DEBUG
std::cerr << "sockaddr_storage_ipv6_isExternalNet() TODO";

View file

@ -24,13 +24,14 @@
*
*/
#include "rsthreads.h"
#include <unistd.h> // for usleep()
#include <errno.h> // for errno
#include <iostream>
#include <time.h>
int __attribute__((weak)) pthread_setname_np(pthread_t __target_thread, const char *__buf) ;
#ifdef RSMUTEX_DEBUG
#include <stdio.h>
#include <sys/time.h>
@ -83,6 +84,7 @@ RsThread::RsThread()
mHasStoppedSemaphore.set(1) ;
mShouldStopSemaphore.set(0) ;
}
bool RsThread::isRunning()
{
// do we need a mutex for this ?
@ -142,7 +144,8 @@ void RsTickingThread::fullstop()
THREAD_DEBUG << " finished!" << std::endl;
#endif
}
void RsThread::start()
void RsThread::start(const std::string &threadName)
{
pthread_t tid;
void *data = (void *)this ;
@ -158,11 +161,30 @@ void RsThread::start()
// -> the new thread will see mIsRunning() = true
if( 0 == (err=pthread_create(&tid, 0, &rsthread_init, data)))
{
mTid = tid;
// set name
if(pthread_setname_np)
if(!threadName.empty())
{
// thread names are restricted to 16 characters including the terminating null byte
if(threadName.length() > 15)
{
#ifdef DEBUG_THREADS
THREAD_DEBUG << "RsThread::start called with to long name '" << name << "' truncating..." << std::endl;
#endif
pthread_setname_np(mTid, threadName.substr(0, 15).c_str());
} else {
pthread_setname_np(mTid, threadName.c_str());
}
}
}
else
{
THREAD_DEBUG << "Fatal error: pthread_create could not create a thread. Error returned: " << err << " !!!!!!!" << std::endl;
mHasStoppedSemaphore.set(1) ;
mHasStoppedSemaphore.set(1) ;
}
}

View file

@ -245,7 +245,7 @@ class RsThread
RsThread();
virtual ~RsThread() {}
void start() ;
void start(const std::string &threadName = "");
// Returns true of the thread is still running.