Submit #2741 ยป 0001-top-1-ability-to-display-individual-threads.patch
| usr.bin/top/m_dragonfly.c | ||
|---|---|---|
|
statics->order_names = ordernames;
|
||
|
/* we need kvm descriptor in order to show full commands */
|
||
|
statics->flags.fullcmds = kd != NULL;
|
||
|
statics->flags.threads = 1;
|
||
|
/* all done! */
|
||
|
return (0);
|
||
| ... | ... | |
|
char status[16];
|
||
|
int state;
|
||
|
int xnice;
|
||
|
int prefer_fullcmd;
|
||
|
char **comm_full;
|
||
|
char *comm;
|
||
|
char cputime_fmt[10], ccputime_fmt[10];
|
||
| ... | ... | |
|
hp->remaining--;
|
||
|
/* get the process's command name */
|
||
|
prefer_fullcmd = show_fullcmd;
|
||
|
if (show_fullcmd) {
|
||
|
if ((comm_full = kvm_getargv(kd, pp, 0)) == NULL) {
|
||
|
prefer_fullcmd = 0;
|
||
|
char **comm_full = kvm_getargv(kd, pp, 0);
|
||
|
if (comm_full != 0)
|
||
|
comm = *comm_full;
|
||
|
else
|
||
|
comm = PP(pp, comm);
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
comm = PP(pp, comm);
|
||
|
}
|
||
|
/* the actual field to display */
|
||
|
char cmdfield[MAX_COLS];
|
||
|
if (PP(pp, flags) & P_SYSTEM) {
|
||
|
/* system process */
|
||
|
snprintf(cmdfield, sizeof cmdfield, "[%s]", comm);
|
||
|
} else if (LP(pp, tid) > 0) {
|
||
|
/* display it as a thread */
|
||
|
snprintf(cmdfield, sizeof cmdfield, "%s{%d}", comm, LP(pp, tid));
|
||
|
} else {
|
||
|
snprintf(cmdfield, sizeof cmdfield, "%s", comm);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Convert the process's runtime from microseconds to seconds. This
|
||
| ... | ... | |
|
ccputime_fmt,
|
||
|
100.0 * pct,
|
||
|
cmdlength,
|
||
|
prefer_fullcmd ? *comm_full : comm);
|
||
|
cmdfield);
|
||
|
/* return the result */
|
||
|
return (fmt);
|
||