我正在将代码从 Linux 移植到 QNX 7。我的代码中的许多地方都使用了 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP。在 Linux 中,这是在 pthread.h 中定义的。在 QNX 中,我无法找到它的定义位置。因此抛出错误:“PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP' 此处未声明(不在函数中)”。 如何解决这个问题?
这样写可以正常打印getdata success 但是如果我们给getData传入的参数不是1,getData会返回一个reject的...
(1)您可以使用默认的 iofunc_attr_lock() 和 iofunc_attr_unlock() 作为属性锁,也可以实现您自己的并填充 attr_lock 和 attr_unlock。 (2)确保锁定是递归的(请参阅 pthread_mutexattr_setrecursive())。 对于“一级”锁, iofunc_lock_ocb_default() 和 iofunc_unlock_ocb_default() 使用您的 attr_lock ...
The attributes of the mutex can also be modified (using pthread_mutex_setrecursive()) to allow a mutex to be recursively locked by the same thread. This can be useful to allow a thread to call a routine that might attempt to lock a mutex that the thread already happens to have locked....
pthread_join() pthread_key_create() pthread_key_delete() pthread_kill() pthread_mutex_consistent() pthread_mutex_destroy() pthread_mutex_getprioceiling() pthread_mutex_init() pthread_mutex_lock() pthread_mutex_setprioceiling() pthread_mutex_timedlock(), pthread_mutex_timedlock_monotonic() pthrea...