summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/launchpad-process-pool/signal_manager.cc21
-rw-r--r--src/launchpad-process-pool/signal_manager.hh7
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_;