diff options
-rw-r--r-- | src/launchpad-process-pool/signal_manager.cc | 21 | ||||
-rw-r--r-- | src/launchpad-process-pool/signal_manager.hh | 7 |
2 files changed, 22 insertions, 6 deletions
diff --git a/src/launchpad-process-pool/signal_manager.cc b/src/launchpad-process-pool/signal_manager.cc index 51fb638..124537e 100644 --- a/src/launchpad-process-pool/signal_manager.cc +++ b/src/launchpad-process-pool/signal_manager.cc @@ -53,17 +53,17 @@ class GarbageCollector : public launchpad::Worker::Job { } } - void DoAtFork() { - _W("pid: %d", pid_); + void DoAtFork() { + _W("pid: %d", pid_); try { std::string path = "/run/aul/apps/" + std::to_string(getuid()) + "/" + - std::to_string(pid_); + std::to_string(pid_); DeleteSocketPath(fs::path(path)); DeleteUnusedFiles(); } catch (const std::filesystem::filesystem_error& e) { _E("Exception occurs. error(%s:%d)", e.what(), e.code().value()); } - } + } private: void DeleteSocketPath(const fs::path& path) { @@ -87,6 +87,19 @@ class GarbageCollector : public launchpad::Worker::Job { } void DeleteUnusedFiles() { + DeleteMCJFile(); + DeleteTmpFiles(); + } + + void DeleteMCJFile() { + std::string path = "/tmp/.dotnet/mcj/MCJ.TMP." + std::to_string(pid_); + if (access(path.c_str(), F_OK) == 0) { + _W("Remove file: %s", path.c_str()); + fs::remove(path); + } + } + + void DeleteTmpFiles() { std::vector<std::string> files = { "clr-debug-pipe-" + std::to_string(pid_) + "-", "dotnet-diagnostic-" + std::to_string(pid_) + "-" diff --git a/src/launchpad-process-pool/signal_manager.hh b/src/launchpad-process-pool/signal_manager.hh index 66acf22..c535ee2 100644 --- a/src/launchpad-process-pool/signal_manager.hh +++ b/src/launchpad-process-pool/signal_manager.hh @@ -60,8 +60,11 @@ class SignalManager : public SigchldEvent::IEvent, SignalAction(int signo, struct sigaction action) : signo_(signo), action_(action) {} - int GetSigno() const { return signo_; }; - struct sigaction GetSigaction() const { return action_; }; + int GetSigno() const { return signo_; } + + struct sigaction GetSigaction() const { + return action_; + } private: int signo_; |