SpiecsEngine
 
Loading...
Searching...
No Matches

◆ TEST_F() [56/72]

SpicesTest::TEST_F ( ThreadPoolCached_test ,
SubmitVeryMuchThreadTask  )

Testing if submit very much thread task successfully.

Definition at line 351 of file ThreadPoolCached_test.h.

351 {
352
354
355 auto func = []() -> void
356 {
357 std::this_thread::sleep_for(std::chrono::microseconds(1));
358 };
359
360 for (int i = 0; i < 2000; i++)
361 {
362 m_ThreadPool.SubmitThreadTask_LightWeight_ForEach(func);
363 }
364
365 /* @brief Wait for all tasks finish. */
366 m_ThreadPool.Wait();
367
368 EXPECT_EQ(m_ThreadPool.GetInitThreadSize() ,nThreads );
369 EXPECT_EQ(m_ThreadPool.GetIdleThreadSize() ,nThreads );
370 EXPECT_EQ(m_ThreadPool.GetPoolMode() ,Spices::PoolMode::MODE_CACHED);
371 EXPECT_EQ(m_ThreadPool.GetTasks() ,0 );
372 EXPECT_EQ(m_ThreadPool.GetThreadsCount() ,nThreads );
373 EXPECT_EQ(m_ThreadPool.GetThreadIdleTimeOut(),10 );
374 EXPECT_EQ(m_ThreadPool.IsPoolRunning() ,true );
375
376 for (auto& pair : m_ThreadPool.GetThreads())
377 {
378 EXPECT_EQ(pair.second->GetThreadTasksCount(), 0);
379 }
380 }
#define SPICESTEST_PROFILE_FUNCTION()