@@ -239,32 +239,32 @@ namespace mamba
239
239
240
240
bool Chrono::started () const
241
241
{
242
- return m_state == ChronoState::started;
242
+ return m_data-> state == ChronoState::started;
243
243
}
244
244
245
245
bool Chrono::paused () const
246
246
{
247
- return m_state == ChronoState::paused;
247
+ return m_data-> state == ChronoState::paused;
248
248
}
249
249
250
250
bool Chrono::stopped () const
251
251
{
252
- return m_state == ChronoState::stopped;
252
+ return m_data-> state == ChronoState::stopped;
253
253
}
254
254
255
255
bool Chrono::terminated () const
256
256
{
257
- return m_state == ChronoState::terminated;
257
+ return m_data-> state == ChronoState::terminated;
258
258
}
259
259
260
260
bool Chrono::unset () const
261
261
{
262
- return m_state == ChronoState::unset;
262
+ return m_data-> state == ChronoState::unset;
263
263
}
264
264
265
265
ChronoState Chrono::status () const
266
266
{
267
- return m_state ;
267
+ return m_data-> state ;
268
268
}
269
269
270
270
void Chrono::start ()
@@ -274,25 +274,24 @@ namespace mamba
274
274
275
275
void Chrono::start (const time_point_t & time_point)
276
276
{
277
- std::lock_guard<std::mutex> lock (m_mutex );
278
- m_start = time_point;
279
- m_state = ChronoState::started;
277
+ auto synched_data = m_data. synchronize ( );
278
+ synched_data-> start = time_point;
279
+ synched_data-> state = ChronoState::started;
280
280
}
281
281
282
282
void Chrono::pause ()
283
283
{
284
284
compute_elapsed ();
285
- std::lock_guard<std::mutex> lock (m_mutex);
286
- m_state = ChronoState::paused;
285
+ m_data->state = ChronoState::paused;
287
286
}
288
287
289
288
void Chrono::resume ()
290
289
{
291
- if (m_state != ChronoState::started)
290
+ auto synched_data = m_data.synchronize ();
291
+ if (synched_data->state != ChronoState::started)
292
292
{
293
- std::lock_guard<std::mutex> lock (m_mutex);
294
- m_state = ChronoState::started;
295
- m_start = now () - m_elapsed_ns;
293
+ synched_data->state = ChronoState::started;
294
+ synched_data->start = now () - synched_data->elapsed_ns ;
296
295
}
297
296
}
298
297
0 commit comments