if no other data than a worker counter a simple pipe with Pool_handling sending the counter when it changes
if more data to be shared/inspected by collection child shared memory seems to be the solution
Two solutions :
1. if no other data than a worker counter a simple pipe with Pool_handling sending the counter when it changes
2. if more data to be shared/inspected by collection child shared memory seems to be the solution
yannweb
added this to the BETA version milestone 5 년 전
The shared memory solution is the more extensible one. But it implies synchronization mechanism. The pool handling proc can update shared memory at each loop, and the collection process can read them using a POSIX timer.
An elegant one should have been to make collection child to SIGSTOP the pool handler pro, to read the data and then, to SIGCONT the pool handler proc. But in this case the pool handler loop will have to deal with EINTR failures….
A simplest solution is to use a semaphore and locking the data when accessing them.
The shared memory solution is the more extensible one. But it implies synchronization mechanism. The pool handling proc can update shared memory at each loop, and the collection process can read them using a POSIX timer.
An elegant one should have been to make collection child to SIGSTOP the pool handler pro, to read the data and then, to SIGCONT the pool handler proc. But in this case the pool handler loop will have to deal with EINTR failures....
A simplest solution is to use a semaphore and locking the data when accessing them.
Two solutions :
if no other data than a worker counter a simple pipe with Pool_handling sending the counter when it changes
if more data to be shared/inspected by collection child shared memory seems to be the solution
The shared memory solution is the more extensible one. But it implies synchronization mechanism. The pool handling proc can update shared memory at each loop, and the collection process can read them using a POSIX timer.
An elegant one should have been to make collection child to SIGSTOP the pool handler pro, to read the data and then, to SIGCONT the pool handler proc. But in this case the pool handler loop will have to deal with EINTR failures….
A simplest solution is to use a semaphore and locking the data when accessing them.
closed by b3af92459e