aboutsummaryrefslogtreecommitdiff
path: root/src/platform/macos.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/macos.rs')
-rw-r--r--src/platform/macos.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/platform/macos.rs b/src/platform/macos.rs
index bfce664a..354a6b3c 100644
--- a/src/platform/macos.rs
+++ b/src/platform/macos.rs
@@ -52,6 +52,26 @@ pub fn foreground_job(child_pid: u32) -> Option<ForegroundJob> {
})
}
+pub fn foreground_group_leader_job(process_group_id: u32) -> Option<ForegroundJob> {
+ let info = process_bsdinfo(process_group_id)?;
+ if info.pbi_pgid != process_group_id {
+ return None;
+ }
+
+ let name = comm_from_bsdinfo(&info)?;
+ let argv = process_argv(process_group_id);
+ Some(ForegroundJob {
+ process_group_id,
+ processes: vec![ForegroundProcess {
+ pid: process_group_id,
+ name,
+ argv0: process_argv0_name(process_group_id),
+ cmdline: argv.as_ref().map(|parts| parts.join(" ")),
+ argv,
+ }],
+ })
+}
+
fn process_group_pids(process_group_id: u32) -> Vec<u32> {
let mut capacity = 16usize;