#if defined(_MSC_VER)
- DWORD WINAPI start_routine(LPVOID threadID) {
+ DWORD WINAPI start_routine(LPVOID thread) {
- Threads[*(int*)threadID].idle_loop(NULL);
+ ((Thread*)thread)->idle_loop(NULL);
return 0;
}
#else
- void* start_routine(void* threadID) {
+ void* start_routine(void* thread) {
- Threads[*(int*)threadID].idle_loop(NULL);
+ ((Thread*)thread)->idle_loop(NULL);
return NULL;
}
threads[i].threadID = i;
#if defined(_MSC_VER)
- threads[i].handle = CreateThread(NULL, 0, start_routine, (LPVOID)&threads[i].threadID, 0, NULL);
+ threads[i].handle = CreateThread(NULL, 0, start_routine, (LPVOID)&threads[i], 0, NULL);
bool ok = (threads[i].handle != NULL);
#else
- bool ok = (pthread_create(&threads[i].handle, NULL, start_routine, (void*)&threads[i].threadID) == 0);
+ bool ok = (pthread_create(&threads[i].handle, NULL, start_routine, (void*)&threads[i]) == 0);
#endif
if (!ok)
{
- std::cout << "Failed to create thread number " << i << std::endl;
+ std::cerr << "Failed to create thread number " << i << std::endl;
::exit(EXIT_FAILURE);
}
}