[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: