bonjour
j'ai un petit souci avec mon mutex pthread qui se comporte pas comme j'aimerais![]()
il me semblait que d'une certaine maniere pthread faisait une queue FIFO de tous les thread qui faisaient lock() sur un mutex deja locke, et qu'il les reveillait dans l'ordre dans lequels ils sont appelle lock(), et apparement c'est pas forcement le cas. Sur 2 machines j'ai 2 comportement different, ce qui me pose probleme c'est que sur l'une :
ne rend jamais la main a d'autres threads qui auraient appelle mutex.lock()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 while (true) { mutex.lock(); ... mutex.unlock(); }
aurais-je mal initialise mon mutex ?
je l'initialise commee suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 pthread_mutex_t* lMutex = new pthread_mutex_t; if(::pthread_mutex_init(lMutex, 0)) throw Exception(eOtherError, "Mutex::Mutex() can't create!");
Partager