OSDN Git Service

Fix "ps -T 1234" to show thread belonging to that PID.
authorRob Landley <rob@landley.net>
Tue, 16 Jan 2018 03:46:45 +0000 (21:46 -0600)
committerRob Landley <rob@landley.net>
Tue, 16 Jan 2018 03:46:45 +0000 (21:46 -0600)
toys/posix/ps.c

index fd9b54b..7741dcd 100644 (file)
@@ -680,8 +680,11 @@ static int get_ps(struct dirtree *new)
 
   memset(slot, 0, sizeof(tb->slot));
   tb->slot[SLOT_tid] = *slot = atol(new->name);
-  if (TT.threadparent && TT.threadparent->extra)
-    if (*slot == *(((struct carveup *)TT.threadparent->extra)->slot)) return 0;
+  if (TT.threadparent && TT.threadparent->extra) {
+    *slot = *(((struct carveup *)TT.threadparent->extra)->slot);
+    // Parent also shows up as a thread, discard duplicate
+    if (*slot == tb->slot[SLOT_tid]) return 0;
+  }
   fd = dirtree_parentfd(new);
 
   len = 2048;