watcher

watcher是什么?????

src/watcher目录

watcher定义

watcher.hpp

37-70:WhitelistWatcher定义

watcher.cpp

WhitelistWatcher也是process

内部变量:

  • path:是存放白名单列表的文件路径名
  • watchInterval:两次watcher之间的间隔
  • subscriber:lambda函数,该变量在WhitelistWatcher构造函数中初始化
  • lastWhitelist:存放上一次列表,便于比较列表内容是否改变

initialize

  • 76-80
  • 81-83:否则,调用watch

watch

  • 95-112:读白名单列表文件,有三种可能的情况:
    • 读取文件错误,报错
    • 文件为空
    • 得到合适的文件内容,根据文件内容初始化内部变量whitelist
  • 115-117:如果与上次名单不同,则调用subscriber(whitelist)
  • 120-121:延迟watchInterval后,调用WhitelistWatcher::watch(自己)

master.cpp 711-716行的定义:

  whitelistWatcher = new WhitelistWatcher(
      flags.whitelist,
      WHITELIST_WATCH_INTERVAL,
      [this](const Option<hashset<string>>& whitelist) {
        return allocator->updateWhitelist(whitelist);
      });

subscriber对应的函数是调用allocator->updateWhitelist,其参数则是watcher.cpp中的whitelist

results matching ""

    No results matching ""