Draft: Stagger subprocesses in finalsink
Resolves #108
This should split up each subprocess in finalsink.
calcfap processes should be evenly spaced: fapupdater_interval / num_stats
(num_stats
was what I called the number of timescales, should probably be num_walltimes
for consistency)
snapshot processes (dumping zerolags, segments, and combining stats) are also evenly split, but all offset by fapupdater_interval / (num_stats * 2)
.
That Should mean that we have something like
1/6 interval | 2/6 interval | 3/6 interval | 4/6 interval | 5/6 interval | 6/6 interval |
---|---|---|---|---|---|
calcfap_2h | snapshotproc | calcfap_1d | ------------ | calcfap_2w | ------------ |
where snapshotproc May be filled with one of the 3 processes that run once every 24h.
I'm only setting these offsets as the initial state. I'm pretty sure that they should then stay in sync, seeing as we've essentially made finalsink synchronous with the mutex it holds for appsink_new_buffer.
Draft:
There's a fair bit which I think looks Gross in this (a lot of repeated patterns), but I'm not sure if there's a cleaner way to do things.
Would appreciate any feedback on bad code patterns/styles and such.
It still needs building & testing. I'll do an injection test, and Luke will launch an MDC run to check if this helps.