Skip to content
Snippets Groups Projects
  • Mike Hommey's avatar
    d9013273
    Add PTHREAD_*_MUTEX_INITIALIZER_NP for glibc · d9013273
    Mike Hommey authored
    `pthread_mutex_t` varies across architectures, in several ways:
    - endianness alters the ordering of bytes, since the contents of the
      struct are larger than 8-bit.
    - its length varies.
    - the location of the mutex kind (`PTHREAD_MUTEX_RECURSIVE`,
      `PTHREAD_MUTEX_ERRORCHECK` or `PTHREAD_MUTEX_ADAPTIVE_NP`) varies
      between 32-bit and 64-bit: On 32-bit architectures, it is preceded by
      three int/unsigned int, while on 64-bit architectures, it is preceded
      by four of them.
    
    These initializers are only available from <pthread.h> when _GNU_SOURCE
    is defined.
    
    Relax the cfg_if check in ci/style.rs to allow #[cfg(target_endian)]
    tests.
    d9013273
    History
    Add PTHREAD_*_MUTEX_INITIALIZER_NP for glibc
    Mike Hommey authored
    `pthread_mutex_t` varies across architectures, in several ways:
    - endianness alters the ordering of bytes, since the contents of the
      struct are larger than 8-bit.
    - its length varies.
    - the location of the mutex kind (`PTHREAD_MUTEX_RECURSIVE`,
      `PTHREAD_MUTEX_ERRORCHECK` or `PTHREAD_MUTEX_ADAPTIVE_NP`) varies
      between 32-bit and 64-bit: On 32-bit architectures, it is preceded by
      three int/unsigned int, while on 64-bit architectures, it is preceded
      by four of them.
    
    These initializers are only available from <pthread.h> when _GNU_SOURCE
    is defined.
    
    Relax the cfg_if check in ci/style.rs to allow #[cfg(target_endian)]
    tests.