- minor cleanup

This commit is contained in:
Dmytro Bogovych 2018-09-28 19:16:16 +03:00
parent 9cc69508ad
commit 4da6c88f02
2 changed files with 52 additions and 25 deletions

View File

@ -101,13 +101,16 @@ int iosVersion()
#include <sys/select.h> #include <sys/select.h>
#include <termios.h> #include <termios.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <fcntl.h>
int _kbhit() int _kbhit()
{ {
/*
static const int STDIN = 0; static const int STDIN = 0;
static bool initialized = false; static bool initialized = false;
if (! initialized) { if (! initialized)
{
// Use termios to turn off line buffering // Use termios to turn off line buffering
termios term; termios term;
tcgetattr(STDIN, &term); tcgetattr(STDIN, &term);
@ -119,7 +122,31 @@ int _kbhit()
int bytesWaiting; int bytesWaiting;
ioctl(STDIN, FIONREAD, &bytesWaiting); ioctl(STDIN, FIONREAD, &bytesWaiting);
return bytesWaiting; return bytesWaiting;*/
static const int STDIN_FILENO = 0;
struct termios oldt, newt;
int ch;
int oldf;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
fcntl(STDIN_FILENO, F_SETFL, oldf);
if(ch != EOF)
{
ungetc(ch, stdin);
return 1;
}
return 0;
} }
#endif #endif

View File

@ -19,27 +19,27 @@
void SyncHelper::delay(unsigned int microseconds) void SyncHelper::delay(unsigned int microseconds)
{ {
#ifdef TARGET_WIN #ifdef TARGET_WIN
::Sleep(microseconds/1000); ::Sleep(microseconds/1000);
#endif #endif
#if defined(TARGET_OSX) || defined(TARGET_LINUX) #if defined(TARGET_OSX) || defined(TARGET_LINUX)
timespec requested, remaining; timespec requested, remaining;
requested.tv_sec = microseconds / 1000000; requested.tv_sec = microseconds / 1000000;
requested.tv_nsec = (microseconds % 1000000) * 1000; requested.tv_nsec = (microseconds % 1000000) * 1000;
remaining.tv_nsec = 0; remaining.tv_nsec = 0;
remaining.tv_sec = 0; remaining.tv_sec = 0;
nanosleep(&requested, &remaining); nanosleep(&requested, &remaining);
#endif #endif
} }
long SyncHelper::increment(long *value) long SyncHelper::increment(long *value)
{ {
assert(value); assert(value);
#ifdef TARGET_WIN #ifdef TARGET_WIN
return ::InterlockedIncrement((LONG*)value); return ::InterlockedIncrement((LONG*)value);
#elif TARGET_OSX #elif TARGET_OSX
return OSAtomicIncrement32((int32_t*)value); return OSAtomicIncrement32((int32_t*)value);
#elif TARGET_LINUX #elif TARGET_LINUX
return -1; return -1;
#endif #endif
} }
@ -47,7 +47,7 @@ long SyncHelper::increment(long *value)
void ThreadHelper::setName(const std::string &name) void ThreadHelper::setName(const std::string &name)
{ {
#if defined(TARGET_LINUX) #if defined(TARGET_LINUX)
pthread_setname_np(pthread_self(), name.c_str()); pthread_setname_np(pthread_self(), name.c_str());
#endif #endif
} }
@ -59,31 +59,31 @@ static time_t TimestampBase = time(nullptr);
uint64_t TimeHelper::getTimestamp() uint64_t TimeHelper::getTimestamp()
{ {
time_point<steady_clock> t = steady_clock::now(); time_point<steady_clock> t = steady_clock::now();
uint64_t ms = duration_cast< milliseconds >(t.time_since_epoch()).count(); uint64_t ms = duration_cast< milliseconds >(t.time_since_epoch()).count();
return ms - TimestampStartPoint + TimestampBase * 1000; return ms - TimestampStartPoint + TimestampBase * 1000;
} }
uint64_t TimeHelper::getUptime() uint64_t TimeHelper::getUptime()
{ {
time_point<steady_clock> t = steady_clock::now(); time_point<steady_clock> t = steady_clock::now();
uint64_t ms = duration_cast< milliseconds >(t.time_since_epoch()).count(); uint64_t ms = duration_cast< milliseconds >(t.time_since_epoch()).count();
return ms - TimestampStartPoint; return ms - TimestampStartPoint;
} }
uint32_t TimeHelper::getDelta(uint32_t later, uint32_t earlier) uint32_t TimeHelper::getDelta(uint32_t later, uint32_t earlier)
{ {
if (later > earlier) if (later > earlier)
return later - earlier; return later - earlier;
if (later < earlier && later < 0x7FFFFFFF && earlier >= 0x7FFFFFFF) if (later < earlier && later < 0x7FFFFFFF && earlier >= 0x7FFFFFFF)
return 0xFFFFFFFF - earlier + later; return 0xFFFFFFFF - earlier + later;
return 0; return 0;
} }
TimeHelper::ExecutionTime::ExecutionTime() TimeHelper::ExecutionTime::ExecutionTime()