123456789101112131415161718192021222324252627282930313233343536 |
- //
- // Created by zx on 22-12-1.
- //
- #include "time_data.h"
- template <class T>
- TimedLockData<T>::TimedLockData()
- {
- timeout_=0.1;
- }
- template <class T>
- void TimedLockData<T>::reset(const T& tdata,double timeout)
- {
- std::unique_lock lock(mutex_);
- data_=tdata;
- timeout_=timeout;
- tp_=std::chrono::steady_clock::now();
- }
- template <class T>
- bool TimedLockData<T>::timeout()
- {
- auto now=std::chrono::steady_clock::now();
- auto duration = std::chrono::duration_cast<std::chrono::microseconds>(now - tp_);
- double time = double(duration.count()) * std::chrono::microseconds::period::num / std::chrono::microseconds::period::den;
- return time>timeout_;
- }
- template <class T>
- T& TimedLockData<T>::Data()
- {
- std::unique_lock lock(mutex_);
- return data_;
- }
|