Lines Matching refs:pid
54 typedef void (*ProcessCallback)(const pid_t pid, void* user_data);
71 pid_t pid;
79 pid = (pid_t)atoi(ptr->d_name);
80 if ((int)pid <= 0) {
85 (*f)(pid, user_data);
92 * Returns the parent pid of a given pid, or -1 if not found
94 static pid_t getParent(pid_t pid) {
106 sprintf(fn, "/proc/%d/stat", pid);
113 * The format is: pid (command) state ppid ...
228 * a given process, and record the pid of the "manager thread".
236 static void ChildCountCallback(const pid_t pid, void* user_data) {
238 if (getParent(pid) == context->ppid) {
241 * Remember the pid of the first child. If the final count is
242 * one then this is the pid of the LinuxThreads manager.
245 context->mpid = pid;
256 (JNIEnv *env, jclass cls, jint pid)
261 * Iterate over all processes to find how many children 'pid' has
263 context.ppid = pid;
269 * If there's no children then this is likely the pid of the primordial
274 pid_t parent = getParent(pid);
290 * If we get here it's most likely we were given the wrong pid
292 JNU_ThrowIOException(env, "Unable to get pid of LinuxThreads manager thread");
304 static void SendQuitCallback(const pid_t pid, void* user_data) {
306 pid_t parent = getParent(pid);
308 kill(pid, SIGQUIT);
318 (JNIEnv *env, jclass cls, jint pid)
321 context.ppid = (pid_t)pid;
324 * Iterate over all children of 'pid' and send a QUIT signal to each.
335 (JNIEnv *env, jclass cls, jint pid)
337 if (kill((pid_t)pid, SIGQUIT)) {