"App Launch. " + std::to_string(pid) + ":" + std::string(appid)));
}
-void DBus::SendAppDeadSignal(pid_t pid) {
- DBusManager::GetInst().Send(
- std::make_shared<DBusMessage>(
- AUL_DBUS_PATH, AUL_DBUS_SIGNAL_INTERFACE, AUL_DBUS_APPDEAD_SIGNAL,
- g_variant_new("(u)", pid), "App Dead. " + std::to_string(pid)));
+void DBus::SendAppDeadSignal(pid_t pid, int status) {
+ DBusManager::GetInst().Send(std::make_shared<DBusMessage>(
+ AUL_DBUS_PATH, AUL_DBUS_SIGNAL_INTERFACE, AUL_DBUS_APPDEAD_SIGNAL,
+ g_variant_new("(ii)", pid, status),
+ "App Dead. pid: " + std::to_string(pid) +
+ ", status: " + std::to_string(status)));
}
void DBus::Init() {
static void Init();
static void Finish();
static void SendAppLaunchSignal(pid_t pid, const std::string_view appid);
- static void SendAppDeadSignal(pid_t pid);
+ static void SendAppDeadSignal(pid_t pid, int status);
};
} // namespace launchpad
return sfd;
}
-void SignalManager::HandleSigchld(pid_t pid) {
- DBus::SendAppDeadSignal(pid);
+void SignalManager::HandleSigchld(pid_t pid, int status) {
+ DBus::SendAppDeadSignal(pid, status);
recycle_bin_->Add(std::make_shared<GarbageCollector>(pid));
}
void SignalManager::OnSigchld(pid_t pid, int status) {
_D("pid: %d, status: %d", pid, status);
- HandleSigchld(pid);
+ HandleSigchld(pid, status);
}
void SignalManager::OnHydraSigchld(pid_t pid, int status) {
_D("pid: %d, status: %d", pid, status);
- HandleSigchld(pid);
+ HandleSigchld(pid, status);
}
} // namespace launchpad
~SignalManager();
void Init();
- void HandleSigchld(pid_t pid);
+ void HandleSigchld(pid_t pid, int status);
int GetSigchldFd();
int BlockSigchld();