pthread_getschedparam无匹配函数调用

时间:2013-09-11 14:46:08

标签: c++ pthreads

当我尝试使用XCode构建它时,我有点困惑为什么以下代码生成错误“没有匹配函数来调用'pthread_getschedparam'”:

#if MACRO_OSX_PLATFORM()
#include <pthread.h>
#endif
...
struct sched_param sp = {0};
pthread_getschedparam(pthread_self(), SCHED_OTHER, &sp);
return sp.sched_priority;

有什么想法?我错过了必要的东西吗?顺便说一句,检查OSX平台的宏工作,100%。

1 个答案:

答案 0 :(得分:1)

pthread_getschedparam的第二个参数是指向int的指针。你已经传入了一个int常量(SCHED_OTHER)。

来自OS X docs

int pthread_getschedparam(pthread_t thread, int *restrict policy, struct sched_param *restrict param);

重点补充。你的意思是这样的:

int dummy; // We don't care what current policy is
struct sched_param sp = {0};
pthread_getschedparam(pthread_self(), &dummy, &sp);
return sp.sched_priority;