Critical section

cs_dens2101 Messages postés 3 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 22 août 2009 - 22 août 2009 à 00:15
cs_dens2101 Messages postés 3 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 22 août 2009 - 22 août 2009 à 11:25
Bonsoir !!!

J'ai une petite question concernant les Critical Section.

Si je fais :

CRITICAL_SECTION cs;
InitializeCriticalSection(&cs);

( ... )

EnterCriticalSection(&cs);

MaFonction();

LeaveCriticalSection(&cs);

( ... )

void MaFonction()
{
// Faut il un EnterCriticalSection ici ???
( ... )
// Faut il un LeaveCriticalSection ici ???

Autrement dit, si l'appel de la fonction est dans une section critique, le code de la fonction l'est il aussi ???

Merci d avance !!!




}

2 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
22 août 2009 à 02:24
Le fait que la fonction ait été appelée depuis une section critique, à savoir que le thread a l'unique accès aux données protégées, garantit qu'il n'y aura pas de problème d'accès. Ceci est vrai seulement si tous les appels à cette fonction ont lieu à l'intérieur de blocs Enter/LeaveCS.
Dans le cas contraire, faudra placer Enter/Leave dans la fonction.
0
cs_dens2101 Messages postés 3 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 22 août 2009
22 août 2009 à 11:25
Merci !!!
0
Rejoignez-nous