2010-02-10 6 views
2

Si vous ne connaissez pas futex et linuxthreads-0.9, ne répondez pas. Puis-je mélanger dans un programme mutex futex avec mutex de linuxthreads-0.8 ou -0.9 (qui a été utilisé dans tous les glibc < = 2.2 et dans tous les uClibc)?Puis-je mélanger des mutex futex avec des mutex glibc-2.2 linuxthreads?

J'ai besoin d'interprocess mutex (pshared one, PTHREAD_PROCESS_SHARED). Donc, si les threads sont démarrés et gérés par linuxthreads pthread_manager, cela sera-t-il perturbé par le sommeil et le wake basés sur le futex? Puis-je utiliser des mutex futex pour la synchronisation inter-process et inter-thread?

Répondre

2

Je ne vois pas pourquoi vous ne pourriez pas.

Vous ne pourrez évidemment pas utiliser les pthreads. Vous utiliserez probablement la bibliothèque pthread avec les anciens mutex et vous aurez besoin du code futex dans une autre bibliothèque.

Vous ne pouvez évidemment pas verrouiller un mutex linuxthreads et le déverrouiller avec une fonction futex, cela ne marcherait jamais.

Mais si un thread est bloqué dans le noyau en attendant un futex, je ne vois pas comment c'est différent d'être bloqué sur une opération d'E/S disque, et linuxthreads gère assez bien.

+0

Pthread_cancel fonctionnera-t-il avec un indicateur asynchrone? – osgx

+1

@osgx: Heck si je sais. Je ne connais personne qui ait réellement essayé de construire une telle combinaison de code. –