The old code used edge-triggered transitions for epoll_wait on the
cgroup.events file, which meant we were losing some events if we weren't
fast enough to process them. This, in turn, caused the unlucky cleaner
processes to hang on an epoll_wait, unable to clean up the unpopulated
cgroup.
With this commit, we now operate on level-triggered transitions, which
allows cleaners to do their jobs properly.
The old code used edge-triggered transitions for epoll_wait on the cgroup.events file, which meant we were losing some events if we weren't fast enough to process them. This, in turn, caused the unlucky cleaner processes to hang on an epoll_wait, unable to clean up the unpopulated cgroup.
With this commit, we now operate on level-triggered transitions, which allows cleaners to do their jobs properly.