Bug#445682: Lack of cross-process mutexes on hppa
Package: libc6
Version: 2.6.1-5
On hppa, GNU libc does not support mutexes which can span multiple
address spaces. The following test program prints
pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED)
pthread_mutexattr_setpshared(&mutexattr, PTHREAD_PROCESS_SHARED)
indicating that this functionality is not supported. It works on amd64
and other architectures.
#include <pthread.h>
main() {
pthread_cond_t cond;
pthread_mutex_t mutex;
pthread_condattr_t condattr;
pthread_mutexattr_t mutexattr;
#define X(cond) if (cond) puts("" #cond);
X(pthread_condattr_init(&condattr));
X(pthread_condattr_setpshared(&condattr, PTHREAD_PROCESS_SHARED));
X(pthread_mutexattr_init(&mutexattr));
X(pthread_mutexattr_setpshared(&mutexattr, PTHREAD_PROCESS_SHARED));
X(pthread_cond_init(&cond, &condattr));
X(pthread_mutex_init(&mutex, &mutexattr));
X(pthread_mutex_lock(&mutex));
X(pthread_mutex_unlock(&mutex));
X(pthread_mutex_destroy(&mutex));
X(pthread_cond_destroy(&cond));
X(pthread_condattr_destroy(&condattr));
X(pthread_mutexattr_destroy(&mutexattr));
}
Reply to: