Я начал записывать ответ, который я только что удалил и который предположил, что это то, что вы хотели:
static void threadStart(void (*function)(void*), void* arg) {
// schedules thread in Queue
function(arg);
}
Но затем я посмотрел на то, что вы пытаетесь сделать с помощью указателя на функцию,это почти похоже на pthread_create
подпрограмму запуска.
Так что не имело смысла, что у вас есть функция с именем threadStart
, которая не запускает поток и не является подпрограммой запуска для потока.Я могу ошибаться, потому что мы не видим в вашем коде ничего, что подсказывало бы, как вызывается threadStart
.
Так что мне было интересно, действительно ли это то, что вы на самом деле имели в виду, функция, которая должна выполняться внутриthread:
void* threadStart(void* arg)
{
someOtherCodeOrFunction(arg); // your code goes here
}
И вы намеревались создать экземпляр этого потока для запуска вышеуказанной функции с arg
в качестве значения параметра:
pthread_create(&thread, NULL, threadStart, arg);