Hello,
I am trying to increase the number of IO threads to remove a bottleneck in my libcef-based application but have so far been unsuccessful.
My first attempt simply created 3 new CefIOThread objects (CefThread:IO2, CefThread:IO3, and CefThread:IO3) with the goal of dispatching requests to them in a round-robin fashion. Naturally, this doesn't work because other places in libcef were designed with a single IO thread in mind. Fortunately LIBCEF has lots of assertions that let me quickly discover that this change broke core assumptions.
I am now looking for alternative strategies. Would this work: In CefUrlRequestJob::Start (scheme_impl.cc), instead of posting the AsyncResolver::Resolve method to IO thread, post it to one of a set of [newly] CefResolverThreads. This would seem to have the effect of allowing multiple Request jobs to happen while maintaining the single IO thread for all other IO-thread activities. Is this a practical solution or dispatching requests in this way cause other problems because items further in the queue depend upon items earlier completing serially?
Is there a better way? Is there no way?
Warm Regards,
Geoffrey