- 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 <termios.h>
#include <sys/ioctl.h>
#include <fcntl.h>
int _kbhit()
{
/*
static const int STDIN = 0;
static bool initialized = false;
if (! initialized) {
if (! initialized)
{
// Use termios to turn off line buffering
termios term;
tcgetattr(STDIN, &term);
@ -119,7 +122,31 @@ int _kbhit()
int 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

View File

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