2013-03-26 9 views
6

Kiedy statycznie inicjowanie rekurencyjną mutex, jaka jest różnica międzyJaka jest różnica między PTHREAD_RECURSIVE_MUTEX_INITIALIZER a PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP?

static pthread_mutex_t foo_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER; 

i

static pthread_mutex_t foo_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; 

i dlaczego miałbym jeden zamiast drugiego?

+0

Czy na pewno istnieje "PTHREAD_RECURSIVE_MUTEX_INITIALIZER"? Nic nie znalazłeś? –

+0

Rzeczywiście, na moim systemie Linux Ubuntu, mój plik '/ usr/include/pthread.h' nie definiuje wersji bez' _NP'. Ale tutaj na przykład jest zdefiniowany: https://android.googlesource.com/platform/prebuilts/ndk/+/5b02cc4c4e80fd6a9e0e0ad4642122e08a007b/android-ndk-r7/platforms/android-14/arch-x86/usr/include/pthread .h w linii 46. –

+0

Cóż, to wydaje się być zależne od implementacji. –

Odpowiedz

6

"_NP" jest wskazówką, że funkcja nie nadaje się do sprzedaży. Aby zachować podpowiedź, najlepiej jest użyć wersji "_NP".

Poza tym podejrzewam, że nie ma różnicy. Nie jest to jednak w 100% pewne.

Powiązane problemy