@@ -75,77 +75,66 @@ void MultiLogRecordProcessor::OnEmit(std::unique_ptr<Recordable> &&record) noexc
75
75
76
76
bool MultiLogRecordProcessor::ForceFlush (std::chrono::microseconds timeout) noexcept
77
77
{
78
- // Convert to nanos to prevent overflow
79
- std::chrono::nanoseconds timeout_ns = std::chrono::nanoseconds::max ();
80
- if (std::chrono::duration_cast<std::chrono::microseconds>(timeout_ns) > timeout)
81
- {
82
- timeout_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(timeout);
83
- }
84
78
bool result = true ;
85
79
auto start_time = std::chrono::system_clock::now ();
86
80
auto overflow_checker = std::chrono::system_clock::time_point::max ();
87
81
std::chrono::system_clock::time_point expire_time;
88
- if (overflow_checker - start_time <= timeout_ns)
82
+ if (std::chrono::duration_cast<std::chrono::microseconds>(overflow_checker - start_time) <=
83
+ timeout)
89
84
{
90
85
expire_time = overflow_checker;
91
86
}
92
87
else
93
88
{
94
89
expire_time =
95
- start_time + std::chrono::duration_cast<std::chrono::system_clock::duration>(timeout_ns );
90
+ start_time + std::chrono::duration_cast<std::chrono::system_clock::duration>(timeout );
96
91
}
97
92
for (auto &processor : processors_)
98
93
{
99
- if (!processor->ForceFlush (std::chrono::duration_cast<std::chrono::microseconds>(timeout_ns) ))
94
+ if (!processor->ForceFlush (timeout ))
100
95
{
101
96
result = false ;
102
97
}
103
98
start_time = std::chrono::system_clock::now ();
104
99
if (expire_time > start_time)
105
100
{
106
- timeout_ns = std::chrono::duration_cast<std::chrono::nanoseconds >(expire_time - start_time);
101
+ timeout = std::chrono::duration_cast<std::chrono::microseconds >(expire_time - start_time);
107
102
}
108
103
else
109
104
{
110
- timeout_ns = std::chrono::nanoseconds ::zero ();
105
+ timeout = std::chrono::microseconds ::zero ();
111
106
}
112
107
}
113
108
return result;
114
109
}
115
110
116
111
bool MultiLogRecordProcessor::Shutdown (std::chrono::microseconds timeout) noexcept
117
112
{
118
- // Converto nanos to prevent overflow
119
- std::chrono::nanoseconds timeout_ns = std::chrono::nanoseconds::max ();
120
- if (std::chrono::duration_cast<std::chrono::microseconds>(timeout_ns) > timeout)
121
- {
122
- timeout_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(timeout);
123
- }
124
113
bool result = true ;
125
114
auto start_time = std::chrono::system_clock::now ();
126
115
auto overflow_checker = std::chrono::system_clock::time_point::max ();
127
116
std::chrono::system_clock::time_point expire_time;
128
- if (overflow_checker - start_time <= timeout_ns)
117
+ if (std::chrono::duration_cast<std::chrono::microseconds>(overflow_checker - start_time) <=
118
+ timeout)
129
119
{
130
120
expire_time = overflow_checker;
131
121
}
132
122
else
133
123
{
134
124
expire_time =
135
- start_time + std::chrono::duration_cast<std::chrono::system_clock::duration>(timeout_ns );
125
+ start_time + std::chrono::duration_cast<std::chrono::system_clock::duration>(timeout );
136
126
}
137
127
for (auto &processor : processors_)
138
128
{
139
- result |=
140
- processor->Shutdown (std::chrono::duration_cast<std::chrono::microseconds>(timeout_ns));
129
+ result |= processor->Shutdown (timeout);
141
130
start_time = std::chrono::system_clock::now ();
142
131
if (expire_time > start_time)
143
132
{
144
- timeout_ns = std::chrono::duration_cast<std::chrono::nanoseconds >(expire_time - start_time);
133
+ timeout = std::chrono::duration_cast<std::chrono::microseconds >(expire_time - start_time);
145
134
}
146
135
else
147
136
{
148
- timeout_ns = std::chrono::nanoseconds ::zero ();
137
+ timeout = std::chrono::microseconds ::zero ();
149
138
}
150
139
}
151
140
return result;
0 commit comments