我已经编写了一些在条件变量上使用定时等待的 pthread 代码,但为了确保相对等待,我使用 pthread_condattr_setclock() 将 condvar 的时钟类型设置为 CLOCK_MONOTONIC。
为了在 RHEL4 上编译和链接 pthread_condattr_setclock(),我必须将 -I/usr/include/nptl 和 -L/usr/lib/nptl 添加到我的 gcc 命令行。我的理解是 2.6 内核(RHEL4 有)默认使用 NPTL pthread 实现,那么为什么我需要明确指定这些路径才能使用这个函数呢?
只是这个函数需要我这样做:如果我忽略它,一切都可以编译和链接,而无需指定额外的路径(尽管代码的行为是不正确的)。