im.h 576 字节
Newer Older
S
superjom 已提交
1 2
#ifndef VISUALDL_LOGIC_IM_H
#define VISUALDL_LOGIC_IM_H
S
superjom 已提交
3

S
superjom 已提交
4 5
#include <glog/logging.h>
#include <memory>
S
Superjom 已提交
6
#include <mutex>
S
superjom 已提交
7 8
#include <string>

S
superjom 已提交
9
#include "visualdl/utils/concurrency.h"
S
superjom 已提交
10
#include "visualdl/utils/guard.h"
S
superjom 已提交
11 12 13 14

namespace visualdl {

/*
S
superjom 已提交
15
 * Simple logic to sync memory to disk.
S
superjom 已提交
16
 */
S
superjom 已提交
17 18
template <typename T>
class SimpleWriteSyncGuard {
S
superjom 已提交
19
public:
S
superjom 已提交
20 21
  SimpleWriteSyncGuard(T* x) : data_(x) { Start(); }
  ~SimpleWriteSyncGuard() { End(); }
S
superjom 已提交
22

S
superjom 已提交
23 24 25
  void Start();
  void End();
  void Sync();
S
Superjom 已提交
26

S
superjom 已提交
27
private:
S
superjom 已提交
28
  T* data_{nullptr};
S
superjom 已提交
29 30
};

S
superjom 已提交
31
}  // namespace visualdl
S
superjom 已提交
32

S
superjom 已提交
33
#endif  // VISUALDL_BACKEND_LOGIC_IM_H