Lines Matching refs:k_pid
41 struct kick_pid *k_pid;
46 k_pid = hash_table_lookup(ctx->pids, POINTER_CAST(line->pid));
47 if (k_pid == NULL) {
48 k_pid = p_new(ctx->who.pool, struct kick_pid, 1);
49 k_pid->pid = line->pid;
50 p_array_init(&k_pid->users, ctx->who.pool, 5);
51 hash_table_insert(ctx->pids, POINTER_CAST(line->pid), k_pid);
54 array_foreach_modifiable(&k_pid->users, user) {
63 array_append(&k_pid->users, &new_user, 1);
67 kick_pid_want_kicked(struct kick_context *ctx, const struct kick_pid *k_pid,
73 if (array_count(&k_pid->users) == 1) {
74 user = array_idx(&k_pid->users, 0);
78 array_foreach(&k_pid->users, user) {
84 if (kick_count < array_count(&k_pid->users) &&
86 array_foreach(&k_pid->users, user) {
141 struct kick_pid *k_pid;
147 while (hash_table_iterate(iter, ctx->pids, &key, &k_pid)) {
148 if (kick_pid_want_kicked(ctx, k_pid, &show_enforce_warning))
149 k_pid->kick = TRUE;
159 while (hash_table_iterate(iter, ctx->pids, &key, &k_pid)) {
160 if (!k_pid->kick)
163 if (kill(k_pid->pid, SIGTERM) < 0 && errno != ESRCH) {
165 dec2str(k_pid->pid));
167 array_foreach(&k_pid->users, user) {