62 const char* stat_targets[] = {
73 for(
size_t i = 0; stat_targets[i]; i++)
77 if(::stat(stat_targets[i], &statbuf) == 0)
78 accum.
add(&statbuf,
sizeof(statbuf), .005);
81 accum.
add(::getpid(), 0);
82 accum.
add(::getppid(), 0);
83 accum.
add(::getuid(), 0);
84 accum.
add(::getgid(), 0);
85 accum.
add(::getpgrp(), 0);
87 struct ::rusage usage;
88 ::getrusage(RUSAGE_SELF, &usage);
89 accum.
add(usage, .005);
91 ::getrusage(RUSAGE_CHILDREN, &usage);
92 accum.
add(usage, .005);
94 const size_t MINIMAL_WORKING = 16;
98 for(
size_t i = 0; i != sources.size(); i++)
102 size_t got_from_src = 0;
106 size_t got_this_loop = pipe.
read(&io_buffer[0], io_buffer.
size());
107 got_from_src += got_this_loop;
109 accum.
add(&io_buffer[0], got_this_loop, .005);
112 sources[i].working = (got_from_src >= MINIMAL_WORKING) ?
true :
false;