| 95 | } |
| 96 | |
| 97 | void AddEntryToCoreSearchFile(const TString& filename, TStringBuf cmd, int pid, const TFsPath& binaryPath = TFsPath(), const TFsPath& cwd = TFsPath()) { |
| 98 | auto lock = TFileLock(filename); |
| 99 | TGuard<TFileLock> guard(lock); |
| 100 | |
| 101 | TOFStream output(TFile(filename, WrOnly | ForAppend | OpenAlways)); |
| 102 | |
| 103 | NJson::TJsonWriter writer(&output, false); |
| 104 | writer.OpenMap(); |
| 105 | writer.Write("cmd", cmd); |
| 106 | writer.Write("pid", pid); |
| 107 | if (binaryPath) { |
| 108 | writer.Write("binary_path", binaryPath); |
| 109 | } |
| 110 | if (cwd) { |
| 111 | writer.Write("cwd", cwd); |
| 112 | } |
| 113 | writer.CloseMap(); |
| 114 | writer.Flush(); |
| 115 | |
| 116 | output.Write("\n"); |
| 117 | } |
| 118 | |
| 119 | void WatchProcessCore(int pid, const TFsPath& binaryPath, const TFsPath& cwd) { |
| 120 | auto& filename = NPrivate::GetTestEnv().CoreSearchFile; |