@@ -182,7 +182,11 @@ void StatsWidget::closeEvent(QCloseEvent* event)
182
182
void StatsWidget::addConnectionPoint (const std::uint16_t & numConn)
183
183
{
184
184
using namespace std ::chrono;
185
- std::lock_guard<std::mutex> lock (mDataGuard );
185
+ std::unique_lock<std::mutex> lock (mDataGuard , std::try_to_lock);
186
+ if (!lock.owns_lock ())
187
+ {
188
+ return ;
189
+ }
186
190
mConnectionPoints .emplace_back (std::make_tuple (numConn, system_clock::now ()));
187
191
cleanupTimeData (mConnectionPoints , std::chrono::minutes{mMaxTimeInPlotMins });
188
192
zeroMissingTimeData (mConnectionPoints );
@@ -193,7 +197,11 @@ void StatsWidget::addConnectionPoint(const std::uint16_t& numConn)
193
197
194
198
void StatsWidget::updateTrafficData (const TrafficData& traffData)
195
199
{
196
- std::lock_guard<std::mutex> lock (mDataGuard );
200
+ std::unique_lock<std::mutex> lock (mDataGuard , std::try_to_lock);
201
+ if (!lock.owns_lock ())
202
+ {
203
+ return ;
204
+ }
197
205
mTrafficPoints .push_back (traffData);
198
206
cleanupTimeData (mTrafficPoints , std::chrono::minutes{mMaxTimeInPlotMins });
199
207
zeroMissingTimeData (mTrafficPoints );
@@ -340,11 +348,11 @@ void StatsWidget::zeroMissingTimeData(Container &vec)
340
348
};
341
349
342
350
const auto itDist = std::adjacent_find (vec.begin (), vec.end (), timeCmp);
343
- const auto itDistEnd = std::next (itDist, 1 );
344
351
if (itDist == vec.end ())
345
352
{
346
353
return ;
347
354
}
355
+ const auto itDistEnd = std::next (itDist, 1 );
348
356
assert (itDistEnd != vec.end ());
349
357
const auto & timePointStart = std::get<TimeValueTypePosition>(*itDist);
350
358
const auto & timePointEnd = std::get<TimeValueTypePosition>(*itDistEnd);
0 commit comments