@@ -75,77 +75,66 @@ void MultiLogRecordProcessor::OnEmit(std::unique_ptr<Recordable> &&record) noexc
7575
7676bool MultiLogRecordProcessor::ForceFlush (std::chrono::microseconds timeout) noexcept
7777{
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- }
8478 bool result = true ;
8579 auto start_time = std::chrono::system_clock::now ();
8680 auto overflow_checker = std::chrono::system_clock::time_point::max ();
8781 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)
8984 {
9085 expire_time = overflow_checker;
9186 }
9287 else
9388 {
9489 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 );
9691 }
9792 for (auto &processor : processors_)
9893 {
99- if (!processor->ForceFlush (std::chrono::duration_cast<std::chrono::microseconds>(timeout_ns) ))
94+ if (!processor->ForceFlush (timeout ))
10095 {
10196 result = false ;
10297 }
10398 start_time = std::chrono::system_clock::now ();
10499 if (expire_time > start_time)
105100 {
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);
107102 }
108103 else
109104 {
110- timeout_ns = std::chrono::nanoseconds ::zero ();
105+ timeout = std::chrono::microseconds ::zero ();
111106 }
112107 }
113108 return result;
114109}
115110
116111bool MultiLogRecordProcessor::Shutdown (std::chrono::microseconds timeout) noexcept
117112{
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- }
124113 bool result = true ;
125114 auto start_time = std::chrono::system_clock::now ();
126115 auto overflow_checker = std::chrono::system_clock::time_point::max ();
127116 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)
129119 {
130120 expire_time = overflow_checker;
131121 }
132122 else
133123 {
134124 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 );
136126 }
137127 for (auto &processor : processors_)
138128 {
139- result |=
140- processor->Shutdown (std::chrono::duration_cast<std::chrono::microseconds>(timeout_ns));
129+ result |= processor->Shutdown (timeout);
141130 start_time = std::chrono::system_clock::now ();
142131 if (expire_time > start_time)
143132 {
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);
145134 }
146135 else
147136 {
148- timeout_ns = std::chrono::nanoseconds ::zero ();
137+ timeout = std::chrono::microseconds ::zero ();
149138 }
150139 }
151140 return result;
0 commit comments