Skip to content

Commit c4f6fb3

Browse files
sjanuarytobespc
authored andcommitted
work around stringstream issueon Node 7 (#427)
1 parent 1e8b65c commit c4f6fb3

File tree

1 file changed

+27
-28
lines changed

1 file changed

+27
-28
lines changed

src/plugins/node/loop/nodeloopplugin.cpp

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -56,47 +56,46 @@ static void cleanupHandle(uv_handle_t *handle) {
5656
}
5757

5858
uv_check_t check_handle;
59-
uint32_t statistics[4];
60-
uint32_t& min = statistics[0];
61-
uint32_t& max = statistics[1];
62-
uint32_t& num = statistics[2];
63-
uint32_t& sum = statistics[3];
59+
int32_t min = 9999;
60+
int32_t max = 0;
61+
int32_t num = 0;
62+
int32_t sum = 0;
6463

6564

6665
#if NODE_VERSION_AT_LEAST(0, 11, 0) // > v0.11+
6766
static void GetLoopInformation(uv_timer_s *data) {
6867
#else
6968
static void GetLoopInformation(uv_timer_s *data, int status) {
7069
#endif
71-
double mean = 0;
7270
if (num != 0) {
71+
double mean = 0;
7372
mean = sum / num;
74-
}
7573

76-
std::stringstream contentss;
77-
contentss << "NodeLoopData";
78-
contentss << "," << min;
79-
contentss << "," << max;
80-
contentss << "," << num;
81-
contentss << "," << mean;
82-
contentss << '\n';
74+
std::stringstream contentss;
75+
contentss << "NodeLoopData";
76+
contentss << "," << min;
77+
contentss << "," << max;
78+
contentss << "," << num;
79+
contentss << "," << mean;
80+
contentss << '\n';
8381

84-
std::string content = contentss.str();
82+
std::string content = contentss.str();
8583

86-
min = 9999;
87-
max = 0;
88-
num = 0;
89-
sum = 0;
84+
min = 9999;
85+
max = 0;
86+
num = 0;
87+
sum = 0;
9088

9189

92-
// Send data
93-
monitordata mdata;
94-
mdata.persistent = false;
95-
mdata.provID = plugin::provid;
96-
mdata.sourceID = 0;
97-
mdata.size = static_cast<uint32>(content.length());
98-
mdata.data = content.c_str();
99-
plugin::api.agentPushData(&mdata);
90+
// Send data
91+
monitordata mdata;
92+
mdata.persistent = false;
93+
mdata.provID = plugin::provid;
94+
mdata.sourceID = 0;
95+
mdata.size = static_cast<uint32>(content.length());
96+
mdata.data = content.c_str();
97+
plugin::api.agentPushData(&mdata);
98+
}
10099

101100
}
102101

@@ -116,7 +115,7 @@ void OnCheck(uv_check_t* handle) {
116115
const uv_loop_t* const loop = handle->loop;
117116
const uint64_t now = uv_hrtime() / static_cast<uint64_t>(1e6);
118117

119-
const uint32_t delta = static_cast<uint32_t>(
118+
const int32_t delta = static_cast<int32_t>(
120119
now <= loop->time ? 0 : (now - loop->time));
121120

122121
if (delta < min) {

0 commit comments

Comments
 (0)