Oliver Webb
Oliver Webb
I've had a go at implementing the thread parking idea. I've moved most of the data members (other than the actual `queue`) out of the `task_queue` class and into a...
NB. In common with #432 this PR has `fork_island` disabled.
This now gives a 15-20% speedup for my workload
> @ow97 sorry for taking longer than anticipated. No worries. I myself have a busy couple of weeks coming up, so I'll have to come back to this in a...
@bluescarni I've implemented your suggestions, and everything seems to be working apart form the `fork_island`. Any ideas on what needs doing to get that working?
So as you'll see I've tried out the following thread park data structures: - `tbb::concurrent_queue` - Causes the annoying build failure under Clang 6 - `boost::lockfree::queue` - Requires a trivial...
Thanks as ever @bluescarni > if I understand correctly, the problem with `fork_island` is the destruction of the static queue of task queues which creates a deadlock. I'll give that...
> memory "leaks" on shutdown that may be annoying to ignore in the memory-checking CI builds @bluescarni are you happy that this doesn't introduce too much noise based on the...
> In any case, it seems to me like a possible strategy for avoiding leaking the naked pointers in the global queue would be to wrap the queue in a...
> Do we need to have two different condition variables? Cannot we use the same condition variable for signalling stopping and parking? We're communicating about 2 different events in 2...