I'm trying to write a simple multithreaded, but I get the error "no overloaded function takes 4 arguments". Any ideas why? My code is:
#include <winsock2.h>
#include <Ws2tcpip.h>
#include <windows.h>
#pragma comment(lib, "ws2_32")
#include <atomic>
using std::atomic_bool;
#include <vector>
using std::vector;
#include <thread>
using std::thread;
#include <mutex>
using std::mutex;
#include <vector>
using std::vector;
#include <iostream>
#include <string>
#include <sstream>
#include <cstring>
using std::cout;
using std::endl;
using std::string;
using std::istringstream;
using std::ostringstream;
using std::ios;
void thread_func(atomic_bool &stop, vector<string> &vs, mutex &m)
{
while (!stop)
{
m.lock();
vs.push_back("test");
m.unlock();
Sleep(1000);
}
}
int main(void)
{
atomic_bool stop = false;
mutex m;
vector<string> vs;
thread thread_a(thread_func, stop, vs, m);
thread_a.join();
while (!stop)
{
m.lock();
for (vector<string>::const_iterator ci = vs.begin(); ci != vs.end(); ci++)
cout << *ci << endl;
vs.clear();
m.unlock();
}
return 0;
}