11 Months Ago
New tier0 threadpool code from Valve * Functor processors removed in favor of std::function jobs (lambdas) * QueueJob always returns a SmartPtr now * JF_PER_FRAME flag added for scheduling jobs to be completed this frame * Improvements to contention by putting stuff on cachelines * New simple ParallelFor usage: ```cpp ParallelFor( 0, 10, []( int n ) { Msg( "%d\n", n ); } ); ``` The fun part: replaced all functor thread jobs with lambdas, and make it work with SmartPtrs This is just done manually by me and isn't from Valve, so there's likely a few cock ups - but everything I've tested has been good. Fix all occurences of WaitForFinishAndRelease() on smart ptrs