Skip to content

Commit

Permalink
Time: Change old u32 timestamps to 64-bit (#5818)
Browse files Browse the repository at this point in the history
MacOSX build fix + cleanups
  • Loading branch information
SmallJoker committed May 26, 2017
1 parent 4d5ce84 commit d99b6fe
Show file tree
Hide file tree
Showing 18 changed files with 75 additions and 96 deletions.
4 changes: 2 additions & 2 deletions src/clientiface.cpp
Expand Up @@ -590,9 +590,9 @@ void RemoteClient::notifyEvent(ClientStateEvent event)
}
}

u32 RemoteClient::uptime() const
u64 RemoteClient::uptime() const
{
return porting::getTime(PRECISION_SECONDS) - m_connection_time;
return porting::getTimeS() - m_connection_time;
}

ClientInterface::ClientInterface(con::Connection* con)
Expand Down
6 changes: 3 additions & 3 deletions src/clientiface.h
Expand Up @@ -266,7 +266,7 @@ class RemoteClient
m_version_patch(0),
m_full_version("unknown"),
m_deployed_compression(0),
m_connection_time(porting::getTime(PRECISION_SECONDS))
m_connection_time(porting::getTimeS())
{
}
~RemoteClient()
Expand Down Expand Up @@ -345,7 +345,7 @@ class RemoteClient
{ serialization_version = m_pending_serialization_version; }

/* get uptime */
u32 uptime() const;
u64 uptime() const;

/* set version information */
void setVersionInfo(u8 major, u8 minor, u8 patch, const std::string &full)
Expand Down Expand Up @@ -432,7 +432,7 @@ class RemoteClient
/*
time this client was created
*/
const u32 m_connection_time;
const u64 m_connection_time;
};

class ClientInterface {
Expand Down
4 changes: 2 additions & 2 deletions src/guiFormSpecMenu.cpp
Expand Up @@ -2658,7 +2658,7 @@ void GUIFormSpecMenu::drawMenu()
if (hovered != NULL) {
s32 id = hovered->getID();

u32 delta = 0;
u64 delta = 0;
if (id == -1) {
m_old_tooltip_id = id;
m_old_tooltip = L"";
Expand Down Expand Up @@ -3247,7 +3247,7 @@ bool GUIFormSpecMenu::DoubleClickDetection(const SEvent event)
m_doubleclickdetect[1].time = porting::getTimeMs();
}
else if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) {
u32 delta = porting::getDeltaMs(m_doubleclickdetect[0].time, porting::getTimeMs());
u64 delta = porting::getDeltaMs(m_doubleclickdetect[0].time, porting::getTimeMs());
if (delta > 400) {
return false;
}
Expand Down
4 changes: 2 additions & 2 deletions src/guiFormSpecMenu.h
Expand Up @@ -420,8 +420,8 @@ class GUIFormSpecMenu : public GUIModalMenu
v2s32 m_old_pointer; // Mouse position after previous mouse event
gui::IGUIStaticText *m_tooltip_element;

u32 m_tooltip_show_delay;
s64 m_hovered_time;
u64 m_tooltip_show_delay;
u64 m_hovered_time;
s32 m_old_tooltip_id;
std::wstring m_old_tooltip;

Expand Down
2 changes: 1 addition & 1 deletion src/hud.cpp
Expand Up @@ -626,7 +626,7 @@ void Hud::resizeHotbar() {
}

struct MeshTimeInfo {
s64 time;
u64 time;
scene::IMesh *mesh;
};

Expand Down
2 changes: 1 addition & 1 deletion src/intlGUIEditBox.h
Expand Up @@ -155,7 +155,7 @@ namespace gui
gui::IGUIFont *OverrideFont, *LastBreakFont;
IOSOperator* Operator;

u32 BlinkStartTime;
u64 BlinkStartTime;
s32 CursorPos;
s32 HScrollPos, VScrollPos; // scroll position in characters
u32 Max;
Expand Down
2 changes: 1 addition & 1 deletion src/map.cpp
Expand Up @@ -981,7 +981,7 @@ void Map::transformLiquids(std::map<v3s16, MapBlock*> &modified_blocks,

time_until_purge *= 1000; // seconds -> milliseconds

u32 curr_time = porting::getTime(PRECISION_MILLI);
u64 curr_time = porting::getTimeMs();
u32 prev_unprocessed = m_unprocessed_count;
m_unprocessed_count = m_transforming_liquid.size();

Expand Down
2 changes: 1 addition & 1 deletion src/map.h
Expand Up @@ -343,7 +343,7 @@ class Map /*: public NodeContainer*/
private:
f32 m_transforming_liquid_loop_count_multiplier;
u32 m_unprocessed_count;
u32 m_inc_trending_up_start_time; // milliseconds
u64 m_inc_trending_up_start_time; // milliseconds
bool m_queue_size_timer_started;

DISABLE_CLASS_COPY(Map);
Expand Down
2 changes: 1 addition & 1 deletion src/network/connection.h
Expand Up @@ -769,7 +769,7 @@ class Peer {
// Seconds from last receive
float m_timeout_counter;

u32 m_last_timeout_check;
u64 m_last_timeout_check;
};

class UDPPeer : public Peer
Expand Down
30 changes: 30 additions & 0 deletions src/profiler.cpp
Expand Up @@ -21,3 +21,33 @@ with this program; if not, write to the Free Software Foundation, Inc.,

static Profiler main_profiler;
Profiler *g_profiler = &main_profiler;
ScopeProfiler::ScopeProfiler(
Profiler *profiler, const std::string &name, ScopeProfilerType type)
: m_profiler(profiler), m_name(name), m_timer(NULL), m_type(type)
{
if (m_profiler)
m_timer = new TimeTaker(m_name);
}

ScopeProfiler::~ScopeProfiler()
{
if (!m_timer)
return;

float duration_ms = m_timer->stop(true);
float duration = duration_ms / 1000.0;
if (m_profiler) {
switch (m_type) {
case SPT_ADD:
m_profiler->add(m_name, duration);
break;
case SPT_AVG:
m_profiler->avg(m_name, duration);
break;
case SPT_GRAPH_ADD:
m_profiler->graphAdd(m_name, duration);
break;
}
}
delete m_timer;
}
44 changes: 2 additions & 42 deletions src/profiler.h
Expand Up @@ -193,48 +193,8 @@ class ScopeProfiler
{
public:
ScopeProfiler(Profiler *profiler, const std::string &name,
enum ScopeProfilerType type = SPT_ADD):
m_profiler(profiler),
m_name(name),
m_timer(NULL),
m_type(type)
{
if(m_profiler)
m_timer = new TimeTaker(m_name.c_str());
}
// name is copied
ScopeProfiler(Profiler *profiler, const char *name,
enum ScopeProfilerType type = SPT_ADD):
m_profiler(profiler),
m_name(name),
m_timer(NULL),
m_type(type)
{
if(m_profiler)
m_timer = new TimeTaker(m_name.c_str());
}
~ScopeProfiler()
{
if(m_timer)
{
float duration_ms = m_timer->stop(true);
float duration = duration_ms / 1000.0;
if(m_profiler){
switch(m_type){
case SPT_ADD:
m_profiler->add(m_name, duration);
break;
case SPT_AVG:
m_profiler->avg(m_name, duration);
break;
case SPT_GRAPH_ADD:
m_profiler->graphAdd(m_name, duration);
break;
}
}
delete m_timer;
}
}
ScopeProfilerType type = SPT_ADD);
~ScopeProfiler();
private:
Profiler *m_profiler;
std::string m_name;
Expand Down
4 changes: 2 additions & 2 deletions src/touchscreengui.cpp
Expand Up @@ -922,7 +922,7 @@ bool TouchScreenGUI::doubleTapDetection()
m_key_events[1].x = m_move_downlocation.X;
m_key_events[1].y = m_move_downlocation.Y;

u32 delta = porting::getDeltaMs(m_key_events[0].down_time, porting::getTimeMs());
u64 delta = porting::getDeltaMs(m_key_events[0].down_time, porting::getTimeMs());
if (delta > 400)
return false;

Expand Down Expand Up @@ -1006,7 +1006,7 @@ void TouchScreenGUI::step(float dtime)
(!m_move_has_really_moved) &&
(!m_move_sent_as_mouse_event)) {

u32 delta = porting::getDeltaMs(m_move_downtime, porting::getTimeMs());
u64 delta = porting::getDeltaMs(m_move_downtime, porting::getTimeMs());

if (delta > MIN_DIG_TIME_MS) {
m_shootline = m_device
Expand Down
8 changes: 4 additions & 4 deletions src/unittest/test.cpp
Expand Up @@ -229,7 +229,7 @@ bool run_tests()
{
DSTACK(FUNCTION_NAME);

u32 t1 = porting::getTime(PRECISION_MILLI);
u64 t1 = porting::getTimeMs();
TestGameDef gamedef;

g_logger.setLevelSilenced(LL_ERROR, true);
Expand All @@ -246,7 +246,7 @@ bool run_tests()
num_total_tests_run += testmods[i]->num_tests_run;
}

u32 tdiff = porting::getTime(PRECISION_MILLI) - t1;
u64 tdiff = porting::getTimeMs() - t1;

g_logger.setLevelSilenced(LL_ERROR, false);

Expand All @@ -273,12 +273,12 @@ bool run_tests()
bool TestBase::testModule(IGameDef *gamedef)
{
rawstream << "======== Testing module " << getName() << std::endl;
u32 t1 = porting::getTime(PRECISION_MILLI);
u64 t1 = porting::getTimeMs();


runTests(gamedef);

u32 tdiff = porting::getTime(PRECISION_MILLI) - t1;
u64 tdiff = porting::getTimeMs() - t1;
rawstream << "======== Module " << getName() << " "
<< (num_tests_failed ? "failed" : "passed") << " (" << num_tests_failed
<< " failures / " << num_tests_run << " tests) - " << tdiff
Expand Down
4 changes: 2 additions & 2 deletions src/unittest/test.h
Expand Up @@ -33,7 +33,7 @@ class TestFailedException : public std::exception {

// Runs a unit test and reports results
#define TEST(fxn, ...) do { \
u32 t1 = porting::getTime(PRECISION_MILLI); \
u64 t1 = porting::getTimeMs(); \
try { \
fxn(__VA_ARGS__); \
rawstream << "[PASS] "; \
Expand All @@ -46,7 +46,7 @@ class TestFailedException : public std::exception {
num_tests_failed++; \
} \
num_tests_run++; \
u32 tdiff = porting::getTime(PRECISION_MILLI) - t1; \
u64 tdiff = porting::getTimeMs() - t1; \
rawstream << #fxn << " - " << tdiff << "ms" << std::endl; \
} while (0)

Expand Down
23 changes: 8 additions & 15 deletions src/util/timetaker.cpp
Expand Up @@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "../log.h"
#include <ostream>

TimeTaker::TimeTaker(const char *name, u32 *result, TimePrecision prec)
TimeTaker::TimeTaker(const std::string &name, u64 *result, TimePrecision prec)
{
m_name = name;
m_result = result;
Expand All @@ -32,18 +32,13 @@ TimeTaker::TimeTaker(const char *name, u32 *result, TimePrecision prec)
m_time1 = porting::getTime(prec);
}

u32 TimeTaker::stop(bool quiet)
u64 TimeTaker::stop(bool quiet)
{
if(m_running)
{
u32 time2 = porting::getTime(m_precision);
u32 dtime = time2 - m_time1;
if(m_result != NULL)
{
if (m_running) {
u64 dtime = porting::getTime(m_precision) - m_time1;
if (m_result != NULL) {
(*m_result) += dtime;
}
else
{
} else {
if (!quiet) {
static const char* const units[] = {
"s" /* PRECISION_SECONDS */,
Expand All @@ -62,10 +57,8 @@ u32 TimeTaker::stop(bool quiet)
return 0;
}

u32 TimeTaker::getTimerTime()
u64 TimeTaker::getTimerTime()
{
u32 time2 = porting::getTime(m_precision);
u32 dtime = time2 - m_time1;
return dtime;
return porting::getTime(m_precision) - m_time1;
}

14 changes: 7 additions & 7 deletions src/util/timetaker.h
Expand Up @@ -30,24 +30,24 @@ with this program; if not, write to the Free Software Foundation, Inc.,
class TimeTaker
{
public:
TimeTaker(const char *name, u32 *result=NULL,
TimePrecision=PRECISION_MILLI);
TimeTaker(const std::string &name, u64 *result=NULL,
TimePrecision prec=PRECISION_MILLI);

~TimeTaker()
{
stop();
}

u32 stop(bool quiet=false);
u64 stop(bool quiet=false);

u32 getTimerTime();
u64 getTimerTime();

private:
const char *m_name;
u32 m_time1;
std::string m_name;
u64 m_time1;
bool m_running;
TimePrecision m_precision;
u32 *m_result;
u64 *m_result;
};

#endif
Expand Down
12 changes: 4 additions & 8 deletions src/voxel.cpp
Expand Up @@ -27,14 +27,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
/*
Debug stuff
*/
u32 addarea_time = 0;
u32 emerge_time = 0;
u32 emerge_load_time = 0;
u32 clearflag_time = 0;
//u32 getwaterpressure_time = 0;
//u32 spreadwaterpressure_time = 0;
u32 updateareawaterpressure_time = 0;
u32 flowwater_pre_time = 0;
u64 addarea_time = 0;
u64 emerge_time = 0;
u64 emerge_load_time = 0;
u64 clearflag_time = 0;


VoxelManipulator::VoxelManipulator():
Expand Down
4 changes: 2 additions & 2 deletions src/voxel.h
Expand Up @@ -49,8 +49,8 @@ class INodeDefManager;
/*
Debug stuff
*/
extern u32 emerge_time;
extern u32 emerge_load_time;
extern u64 emerge_time;
extern u64 emerge_load_time;

/*
This class resembles aabbox3d<s16> a lot, but has inclusive
Expand Down

0 comments on commit d99b6fe

Please sign in to comment.