alejandro's changes from ESRF

This commit is contained in:
Dhanya Maliakal 2017-04-07 14:50:17 +02:00
parent bd5293f4b1
commit f0198d2d2e
3 changed files with 15 additions and 9 deletions

View File

@ -739,7 +739,7 @@ private:
//***data call back thread parameters*** //***data call back thread parameters***
/** Ensures if zmq threads created successfully */ /** Ensures if zmq threads created successfully */
bool zmqThreadStarted; volatile bool zmqThreadStarted;
/** Number of data callback Threads */ /** Number of data callback Threads */
int numberofDataCallbackThreads; int numberofDataCallbackThreads;
@ -760,7 +760,7 @@ private:
//***general and listening thread parameters*** //***general and listening thread parameters***
/** Ensures if threads created successfully */ /** Ensures if threads created successfully */
bool threadStarted; volatile bool threadStarted;
/** Current Thread Index*/ /** Current Thread Index*/
int currentThreadIndex; int currentThreadIndex;

View File

@ -134,7 +134,7 @@ bool CircularFifo<Element>::isEmpty() const
template<typename Element> template<typename Element>
bool CircularFifo<Element>::isFull() const bool CircularFifo<Element>::isFull() const
{ {
int tailCheck = (tail+1) % Capacity; int tailCheck = increment(tail);
return (tailCheck == head); return (tailCheck == head);
} }

View File

@ -123,14 +123,18 @@ inline std::string NowTime()
inline std::string NowTime() inline std::string NowTime()
{ {
char buffer[11]; char buffer[11];
const int buffer_len = sizeof(buffer);
time_t t; time_t t;
time(&t); time(&t);
tm r = {0}; tm r = {0};
strftime(buffer, sizeof(buffer), "%X", localtime_r(&t, &r)); strftime(buffer, buffer_len, "%X", localtime_r(&t, &r));
buffer[buffer_len - 1] = 0;
struct timeval tv; struct timeval tv;
gettimeofday(&tv, 0); gettimeofday(&tv, 0);
char result[100] = {0}; char result[100];
sprintf(result, "%s.%03ld", buffer, (long)tv.tv_usec / 1000); const int result_len = sizeof(result);
snprintf(result, result_len, "%s.%03ld", buffer, (long)tv.tv_usec / 1000);
result[result_len - 1] = 0;
return result; return result;
} }
@ -144,7 +148,8 @@ template <typename T> std::ostringstream& Log<T>::Get(TLogLevel level)
lev = level; lev = level;
os << "- " << NowTime(); os << "- " << NowTime();
os << " " << ToString(level) << ": "; os << " " << ToString(level) << ": ";
os << std::string(level > logDEBUG ? level - logDEBUG : 0, '\t'); if (level > logDEBUG)
os << std::string(level - logDEBUG, '\t');
return os; return os;
} }
@ -216,14 +221,15 @@ inline void Output2FILE::Output(const std::string& msg, TLogLevel level)
FILE* pStream = Stream(); FILE* pStream = Stream();
if (!pStream) if (!pStream)
return; return;
bool out = true;
switch(level){ switch(level){
case logERROR: cprintf(RED BOLD,"%s",msg.c_str()); break; case logERROR: cprintf(RED BOLD,"%s",msg.c_str()); break;
case logWARNING: cprintf(YELLOW BOLD,"%s",msg.c_str()); break; case logWARNING: cprintf(YELLOW BOLD,"%s",msg.c_str()); break;
case logINFO: cprintf(GRAY,"%s",msg.c_str());break; case logINFO: cprintf(GRAY,"%s",msg.c_str());break;
// case logINFO: cprintf(DARKGRAY BOLD,"%s",msg.c_str());break; // case logINFO: cprintf(DARKGRAY BOLD,"%s",msg.c_str());break;
default: fprintf(pStream,"%s",msg.c_str()); break; default: fprintf(pStream,"%s",msg.c_str()); out = false; break;
} }
fflush(pStream); fflush(out ? stdout : pStream);
} }
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)