std::mutex task_lock;
std::mutex running_tasks_lock;
std::vector<std::string> path;
std::vector<std::thread *> vecOfThreads;
void __get_fileTree(std::thread *thread)
{
qDebug() << "YES";
}
void MapSorter::get_fileTree()
{
task_lock.lock();
path.push_back("D:\\ymir work\\");
task_lock.unlock();
vecOfThreads.clear();
for (int i = 0; i < 4; i++)
{
vecOfThreads.push_back(new std::thread(__get_fileTree, this));
}
bool tasks_done_ticker = 4;
while (tasks_done_ticker > 0)
{
Sleep(10);
running_tasks_lock.lock();
task_lock.lock();
if (path.empty())
{
tasks_done_ticker -= 1;
}
else
{
tasks_done_ticker = 4;
}
running_tasks_lock.unlock();
task_lock.unlock();
}
for (std::thread *s : vecOfThreads)
{
s->join();
}
}
I tryed to create 4 threads and just print a debug to test it. I get this compiler issue so i thought I may have done something wrong but after trying to change the function call several times i couldnt fix it. Any suggestions?
ERROR MESSAGES: Error messages
Changes to
vecOfThreads.push_back(new std::thread(&MapSorter::Repeatget_fileTree, this));
doesnt fix the issue