Section critique re-entrante a l'intérieur d'un même thread ?
3 réponses
Silver bullet
Je voudrais savoir si une section critique est ré-entrante à l'intérieur
d'un même thread.
Lorsqu'on vient de rentrer dans une section critique, si il y a un appel à
une fonction qui démarre elle aussi par une entrée dans la même section
critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de la
2eme fonction ou pas ?
Je présume que non puisque c'est le même thread, mais j'ai quand même un
doute. Merci de votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent Burel
"Silver bullet" wrote in message news:4541c8c2$0$5084$
Je voudrais savoir si une section critique est ré-entrante à l'intérieur d'un même thread.
Lorsqu'on vient de rentrer dans une section critique, si il y a un appel à une fonction qui démarre elle aussi par une entrée dans la même section critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de la 2eme fonction ou pas ? Je présume que non puisque c'est le même thread, mais j'ai quand même un doute. Merci de votre aide.
Je ne suis pas certain de la réponse... je dirais que ca devrait fonctionner... Mais je ne conseillerais pas de le faire... Une section critique se doit d'etre la plus courte possible, c'est pourquoi généralement une section critique ne contient que des mouvements mémoires (ex : copie de paramètres)... on évite les appels de fonctions, surtout si ce sont des fonctions comportant des sections critiques. Il faut éviter tout potentialité de dead lock... et appeler des fonctions à l'intérieur d'une section critique en est une.
VB
"Silver bullet" <Silver@bullet.org> wrote in message
news:4541c8c2$0$5084$ba4acef3@news.orange.fr...
Je voudrais savoir si une section critique est ré-entrante à l'intérieur
d'un même thread.
Lorsqu'on vient de rentrer dans une section critique, si il y a un appel à
une fonction qui démarre elle aussi par une entrée dans la même section
critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de la
2eme fonction ou pas ?
Je présume que non puisque c'est le même thread, mais j'ai quand même un
doute. Merci de votre aide.
Je ne suis pas certain de la réponse... je dirais que ca devrait
fonctionner...
Mais je ne conseillerais pas de le faire... Une section critique se doit
d'etre la plus courte possible, c'est pourquoi généralement une section
critique ne contient que des mouvements mémoires (ex : copie de
paramètres)... on évite les appels de fonctions, surtout si ce sont des
fonctions comportant des sections critiques. Il faut éviter tout
potentialité de dead lock... et appeler des fonctions à l'intérieur d'une
section critique en est une.
"Silver bullet" wrote in message news:4541c8c2$0$5084$
Je voudrais savoir si une section critique est ré-entrante à l'intérieur d'un même thread.
Lorsqu'on vient de rentrer dans une section critique, si il y a un appel à une fonction qui démarre elle aussi par une entrée dans la même section critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de la 2eme fonction ou pas ? Je présume que non puisque c'est le même thread, mais j'ai quand même un doute. Merci de votre aide.
Je ne suis pas certain de la réponse... je dirais que ca devrait fonctionner... Mais je ne conseillerais pas de le faire... Une section critique se doit d'etre la plus courte possible, c'est pourquoi généralement une section critique ne contient que des mouvements mémoires (ex : copie de paramètres)... on évite les appels de fonctions, surtout si ce sont des fonctions comportant des sections critiques. Il faut éviter tout potentialité de dead lock... et appeler des fonctions à l'intérieur d'une section critique en est une.
VB
Arnaud Debaene
"Vincent Burel" a écrit dans le message de news: 4541dfc5$0$5100$
"Silver bullet" wrote in message news:4541c8c2$0$5084$
Je voudrais savoir si une section critique est ré-entrante à l'intérieur d'un même thread.
Lorsqu'on vient de rentrer dans une section critique, si il y a un appel à une fonction qui démarre elle aussi par une entrée dans la même section critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de la 2eme fonction ou pas ?
Oui ca fonctionne, les sections critiques sont réentrantes (tout comme les mutexs).
Comme d'habitude, un petit tour dans la doc nous donne toutes les informations : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/entercriticalsection.asp
"After a thread has ownership of a critical section, it can make additional calls to EnterCriticalSection or TryEnterCriticalSection without blocking its execution. This prevents a thread from deadlocking itself while waiting for a critical section that it already owns. The thread enters the critical section each time EnterCriticalSection and TryEnterCriticalSection succeed. A thread must call LeaveCriticalSection once for each time that it entered the critical section."
Je ne suis pas certain de la réponse... je dirais que ca devrait fonctionner... Mais je ne conseillerais pas de le faire... Une section critique se doit d'etre la plus courte possible, c'est pourquoi généralement une section critique ne contient que des mouvements mémoires (ex : copie de paramètres)... on évite les appels de fonctions, surtout si ce sont des fonctions comportant des sections critiques. Il faut éviter tout potentialité de dead lock...
Si tu t'appelles toi même en récursif (le cas typique pour lequel on acquiert une section critique plusieurs fois de suite) , tu ne risques pas le deadlock....
Arnaud MVP - VC
"Vincent Burel" <vincent.burel@nospam.wanadoo.fr> a écrit dans le message de
news: 4541dfc5$0$5100$ba4acef3@news.orange.fr...
"Silver bullet" <Silver@bullet.org> wrote in message
news:4541c8c2$0$5084$ba4acef3@news.orange.fr...
Je voudrais savoir si une section critique est ré-entrante à l'intérieur
d'un même thread.
Lorsqu'on vient de rentrer dans une section critique, si il y a un appel
à
une fonction qui démarre elle aussi par une entrée dans la même section
critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de
la
2eme fonction ou pas ?
Oui ca fonctionne, les sections critiques sont réentrantes (tout comme les
mutexs).
Comme d'habitude, un petit tour dans la doc nous donne toutes les
informations :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/entercriticalsection.asp
"After a thread has ownership of a critical section, it can make additional
calls to EnterCriticalSection or TryEnterCriticalSection without blocking
its execution. This prevents a thread from deadlocking itself while waiting
for a critical section that it already owns. The thread enters the critical
section each time EnterCriticalSection and TryEnterCriticalSection succeed.
A thread must call LeaveCriticalSection once for each time that it entered
the critical section."
Je ne suis pas certain de la réponse... je dirais que ca devrait
fonctionner...
Mais je ne conseillerais pas de le faire... Une section critique se doit
d'etre la plus courte possible, c'est pourquoi généralement une section
critique ne contient que des mouvements mémoires (ex : copie de
paramètres)... on évite les appels de fonctions, surtout si ce sont des
fonctions comportant des sections critiques. Il faut éviter tout
potentialité de dead lock...
Si tu t'appelles toi même en récursif (le cas typique pour lequel on
acquiert une section critique plusieurs fois de suite) , tu ne risques pas
le deadlock....
"Vincent Burel" a écrit dans le message de news: 4541dfc5$0$5100$
"Silver bullet" wrote in message news:4541c8c2$0$5084$
Je voudrais savoir si une section critique est ré-entrante à l'intérieur d'un même thread.
Lorsqu'on vient de rentrer dans une section critique, si il y a un appel à une fonction qui démarre elle aussi par une entrée dans la même section critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de la 2eme fonction ou pas ?
Oui ca fonctionne, les sections critiques sont réentrantes (tout comme les mutexs).
Comme d'habitude, un petit tour dans la doc nous donne toutes les informations : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/entercriticalsection.asp
"After a thread has ownership of a critical section, it can make additional calls to EnterCriticalSection or TryEnterCriticalSection without blocking its execution. This prevents a thread from deadlocking itself while waiting for a critical section that it already owns. The thread enters the critical section each time EnterCriticalSection and TryEnterCriticalSection succeed. A thread must call LeaveCriticalSection once for each time that it entered the critical section."
Je ne suis pas certain de la réponse... je dirais que ca devrait fonctionner... Mais je ne conseillerais pas de le faire... Une section critique se doit d'etre la plus courte possible, c'est pourquoi généralement une section critique ne contient que des mouvements mémoires (ex : copie de paramètres)... on évite les appels de fonctions, surtout si ce sont des fonctions comportant des sections critiques. Il faut éviter tout potentialité de dead lock...
Si tu t'appelles toi même en récursif (le cas typique pour lequel on acquiert une section critique plusieurs fois de suite) , tu ne risques pas le deadlock....
Arnaud MVP - VC
Vincent Burel
"Arnaud Debaene" wrote in message news:45425323$0$3691$
"Vincent Burel" a écrit dans le message
de
news: 4541dfc5$0$5100$ > > "Silver bullet" wrote in message > news:4541c8c2$0$5084$ >> Je voudrais savoir si une section critique est ré-entrante à
l'intérieur
>> d'un même thread. >> >> Lorsqu'on vient de rentrer dans une section critique, si il y a un
appel
>> à >> une fonction qui démarre elle aussi par une entrée dans la même section >> critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de >> la >> 2eme fonction ou pas ?
Oui ca fonctionne, les sections critiques sont réentrantes (tout comme les mutexs).
Comme d'habitude, un petit tour dans la doc nous donne toutes les informations :
"After a thread has ownership of a critical section, it can make
additional
calls to EnterCriticalSection or TryEnterCriticalSection without blocking its execution. This prevents a thread from deadlocking itself while
waiting
for a critical section that it already owns. The thread enters the
critical
section each time EnterCriticalSection and TryEnterCriticalSection
succeed.
A thread must call LeaveCriticalSection once for each time that it entered the critical section."
> Je ne suis pas certain de la réponse... je dirais que ca devrait > fonctionner... > Mais je ne conseillerais pas de le faire... Une section critique se doit > d'etre la plus courte possible, c'est pourquoi généralement une section > critique ne contient que des mouvements mémoires (ex : copie de > paramètres)... on évite les appels de fonctions, surtout si ce sont des > fonctions comportant des sections critiques. Il faut éviter tout > potentialité de dead lock...
Si tu t'appelles toi même en récursif (le cas typique pour lequel on acquiert une section critique plusieurs fois de suite) , tu ne risques pas le deadlock....
oui, peut etre... pour ma part je préfère éviter... les sections critiques peuvent etres rendues exclusives au fil de l'élaboration d'un programme et donc plus "ré-entrante", (peut etre que le terme "inclusive" serait plus judicieux que "ré-entrante"), et quand on commence à multiplier les thread... ca peut poser des problèmes d'appeler des fonctions à section critique, à l'intérieur d'une section critique...
VB
"Arnaud Debaene" <adebaene@club-internet.fr> wrote in message
news:45425323$0$3691$426a34cc@news.free.fr...
"Vincent Burel" <vincent.burel@nospam.wanadoo.fr> a écrit dans le message
de
news: 4541dfc5$0$5100$ba4acef3@news.orange.fr...
>
> "Silver bullet" <Silver@bullet.org> wrote in message
> news:4541c8c2$0$5084$ba4acef3@news.orange.fr...
>> Je voudrais savoir si une section critique est ré-entrante à
l'intérieur
>> d'un même thread.
>>
>> Lorsqu'on vient de rentrer dans une section critique, si il y a un
appel
>> à
>> une fonction qui démarre elle aussi par une entrée dans la même section
>> critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de
>> la
>> 2eme fonction ou pas ?
Oui ca fonctionne, les sections critiques sont réentrantes (tout comme les
mutexs).
Comme d'habitude, un petit tour dans la doc nous donne toutes les
informations :
"After a thread has ownership of a critical section, it can make
additional
calls to EnterCriticalSection or TryEnterCriticalSection without blocking
its execution. This prevents a thread from deadlocking itself while
waiting
for a critical section that it already owns. The thread enters the
critical
section each time EnterCriticalSection and TryEnterCriticalSection
succeed.
A thread must call LeaveCriticalSection once for each time that it entered
the critical section."
> Je ne suis pas certain de la réponse... je dirais que ca devrait
> fonctionner...
> Mais je ne conseillerais pas de le faire... Une section critique se doit
> d'etre la plus courte possible, c'est pourquoi généralement une section
> critique ne contient que des mouvements mémoires (ex : copie de
> paramètres)... on évite les appels de fonctions, surtout si ce sont des
> fonctions comportant des sections critiques. Il faut éviter tout
> potentialité de dead lock...
Si tu t'appelles toi même en récursif (le cas typique pour lequel on
acquiert une section critique plusieurs fois de suite) , tu ne risques pas
le deadlock....
oui, peut etre... pour ma part je préfère éviter... les sections critiques
peuvent etres rendues exclusives au fil de l'élaboration d'un programme et
donc plus "ré-entrante", (peut etre que le terme "inclusive" serait plus
judicieux que "ré-entrante"), et quand on commence à multiplier les
thread... ca peut poser des problèmes d'appeler des fonctions à section
critique, à l'intérieur d'une section critique...
"Arnaud Debaene" wrote in message news:45425323$0$3691$
"Vincent Burel" a écrit dans le message
de
news: 4541dfc5$0$5100$ > > "Silver bullet" wrote in message > news:4541c8c2$0$5084$ >> Je voudrais savoir si une section critique est ré-entrante à
l'intérieur
>> d'un même thread. >> >> Lorsqu'on vient de rentrer dans une section critique, si il y a un
appel
>> à >> une fonction qui démarre elle aussi par une entrée dans la même section >> critique (et même thread), est-ce qu'il y aura un blocage à l'entrée de >> la >> 2eme fonction ou pas ?
Oui ca fonctionne, les sections critiques sont réentrantes (tout comme les mutexs).
Comme d'habitude, un petit tour dans la doc nous donne toutes les informations :
"After a thread has ownership of a critical section, it can make
additional
calls to EnterCriticalSection or TryEnterCriticalSection without blocking its execution. This prevents a thread from deadlocking itself while
waiting
for a critical section that it already owns. The thread enters the
critical
section each time EnterCriticalSection and TryEnterCriticalSection
succeed.
A thread must call LeaveCriticalSection once for each time that it entered the critical section."
> Je ne suis pas certain de la réponse... je dirais que ca devrait > fonctionner... > Mais je ne conseillerais pas de le faire... Une section critique se doit > d'etre la plus courte possible, c'est pourquoi généralement une section > critique ne contient que des mouvements mémoires (ex : copie de > paramètres)... on évite les appels de fonctions, surtout si ce sont des > fonctions comportant des sections critiques. Il faut éviter tout > potentialité de dead lock...
Si tu t'appelles toi même en récursif (le cas typique pour lequel on acquiert une section critique plusieurs fois de suite) , tu ne risques pas le deadlock....
oui, peut etre... pour ma part je préfère éviter... les sections critiques peuvent etres rendues exclusives au fil de l'élaboration d'un programme et donc plus "ré-entrante", (peut etre que le terme "inclusive" serait plus judicieux que "ré-entrante"), et quand on commence à multiplier les thread... ca peut poser des problèmes d'appeler des fonctions à section critique, à l'intérieur d'une section critique...