MCPcopy Create free account
hub / github.com/MariaDB/server / thread_func

Method thread_func

extra/mariabackup/thread_pool.cc:30–50  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28}
29
30void ThreadPool::thread_func(unsigned thread_num) {
31 if (my_thread_init())
32 die("Can't init mysql thread");
33 std::unique_lock<std::mutex> lock(m_mutex);
34 while(true) {
35 if (m_stop)
36 goto exit;
37 while (!m_jobs.empty()) {
38 if (m_stop)
39 goto exit;
40 job_t j = std::move(m_jobs.front());
41 m_jobs.pop();
42 lock.unlock();
43 j(thread_num);
44 lock.lock();
45 }
46 m_cv.wait(lock, [&] { return m_stop || !m_jobs.empty(); });
47 }
48exit:
49 my_thread_end();
50}

Callers

nothing calls this directly

Calls 9

my_thread_initFunction · 0.85
my_thread_endFunction · 0.85
dieFunction · 0.50
emptyMethod · 0.45
frontMethod · 0.45
popMethod · 0.45
unlockMethod · 0.45
lockMethod · 0.45
waitMethod · 0.45

Tested by

no test coverage detected