я получил основную функцию, как это:объекты в Posix Thread-функций
int main(){
....
Protocol SPI_conn;
SPI_conn.omap_SPI_init();
....
pthread_create(&rt_OneStep0_thread, NULL, rt_OneStep0, NULL);
....
}
, где SPI_conn является объектом Протокола класса и omap_SPI_init() представляет собой метод того же класса. Моя функция потока выглядит так:
extern "C" void * rt_OneStep0(void *)
{
while (1) {
sem_wait(&step0_semaphore);
SPI_do();
sem_wait(&step0_semaphore);
}
}
SPI_do() также является функцией протокола класса. Мой вопрос в том, как я могу использовать объект SPI_conn с методом SPI_do. Обычно вы можете сделать это по ссылке, но здесь rt_OneStep0 (void *) должен быть определен следующим образом, правильно?
Я очень ценю вашу помощь!
Передайте объект, созданный в главном, функции потока через void * arg для функции потока. Google для учебника pthreads - есть много примеров с примерами того, как это сделать. – mathematician1975