Non, mais je ne connais aucun moyen "automatique" qui permette de faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne fait-elle pas l'affaire ? D'accord, si une exception est levée avant le premier Dismiss de Lock A (ie, avant le Unlock A), les Unlocks seront fait dans l'ordre inverse des Locks, mais le résultat sera là.
Non, mais je ne connais aucun moyen "automatique" qui permette de faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne
fait-elle pas l'affaire ? D'accord, si une exception est levée avant le
premier Dismiss de Lock A (ie, avant le Unlock A), les Unlocks seront
fait dans l'ordre inverse des Locks, mais le résultat sera là.
Non, mais je ne connais aucun moyen "automatique" qui permette de faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne fait-elle pas l'affaire ? D'accord, si une exception est levée avant le premier Dismiss de Lock A (ie, avant le Unlock A), les Unlocks seront fait dans l'ordre inverse des Locks, mais le résultat sera là.
Alexis
-- Un certain domaine est free
Arnaud Debaene
Alexis Nikichine wrote:
Arnaud Debaene wrote:
Matthieu Moy wrote:
"Arnaud Debaene" writes:
Donnes-nous un exemple où ce mécanisme ne serait pas satisfaisant.
Non, mais je ne connais aucun moyen "automatique" qui permette de faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne fait-elle pas l'affaire ? Je ne vois pas comment. Au mieux, Dismiss va permettre de ne pas appeler un
Unlock il me semble... Postes un exemple de ce à quoi tu penses...
Non, mais je ne connais aucun moyen "automatique" qui permette de
faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne
fait-elle pas l'affaire ?
Je ne vois pas comment. Au mieux, Dismiss va permettre de ne pas appeler un
Unlock il me semble... Postes un exemple de ce à quoi tu penses...
Non, mais je ne connais aucun moyen "automatique" qui permette de faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne fait-elle pas l'affaire ? Je ne vois pas comment. Au mieux, Dismiss va permettre de ne pas appeler un
Unlock il me semble... Postes un exemple de ce à quoi tu penses...
Arnaud
Alexis Nikichine
Arnaud Debaene wrote:
Alexis Nikichine wrote:
Arnaud Debaene wrote:
Matthieu Moy wrote:
"Arnaud Debaene" writes:
Donnes-nous un exemple où ce mécanisme ne serait pas satisfaisant.
Non, mais je ne connais aucun moyen "automatique" qui permette de faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne fait-elle pas l'affaire ?
Je ne vois pas comment. Au mieux, Dismiss va permettre de ne pas appeler un Unlock il me semble... Postes un exemple de ce à quoi tu penses...
Euh, non, tu as raison, ça fait le contraire :-) Personne ne voudrait Dismisser (et donc, garder locké à tout jamais) un mutex, non ?
La confusion doit me venir de ce que quelques temps avant de lire l'article sur les ScopeGuards, j'avais écrit une classe Lock à laquelle j'avais ajouté une méthode void Lock::earlyUnlock(), pour les cas où il était nécesaire de releaser un mutex plutôt que prévu.
Maintenant, on pourrait peut-être rajouter une méthode "earlyRelease" au ScopeGuard pour lui dire "fais ton nettoyage maintenant".
Non, mais je ne connais aucun moyen "automatique" qui permette de
faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne
fait-elle pas l'affaire ?
Je ne vois pas comment. Au mieux, Dismiss va permettre de ne pas appeler un
Unlock il me semble... Postes un exemple de ce à quoi tu penses...
Euh, non, tu as raison, ça fait le contraire :-) Personne ne voudrait
Dismisser (et donc, garder locké à tout jamais) un mutex, non ?
La confusion doit me venir de ce que quelques temps avant de lire
l'article sur les ScopeGuards, j'avais écrit une classe Lock à laquelle
j'avais ajouté une méthode void Lock::earlyUnlock(), pour les cas où il
était nécesaire de releaser un mutex plutôt que prévu.
Maintenant, on pourrait peut-être rajouter une méthode "earlyRelease" au
ScopeGuard pour lui dire "fais ton nettoyage maintenant".
Non, mais je ne connais aucun moyen "automatique" qui permette de faire çà.
La fonctionnalité Dismiss des ScopeGuards que tu as mentionnés ne fait-elle pas l'affaire ?
Je ne vois pas comment. Au mieux, Dismiss va permettre de ne pas appeler un Unlock il me semble... Postes un exemple de ce à quoi tu penses...
Euh, non, tu as raison, ça fait le contraire :-) Personne ne voudrait Dismisser (et donc, garder locké à tout jamais) un mutex, non ?
La confusion doit me venir de ce que quelques temps avant de lire l'article sur les ScopeGuards, j'avais écrit une classe Lock à laquelle j'avais ajouté une méthode void Lock::earlyUnlock(), pour les cas où il était nécesaire de releaser un mutex plutôt que prévu.
Maintenant, on pourrait peut-être rajouter une méthode "earlyRelease" au ScopeGuard pour lui dire "fais ton nettoyage maintenant".
Alexis
-- Un certain domaine est libre.
Marc Boyer
In article , Matthieu Moy wrote:
"Arnaud Debaene" writes:
Donnes-nous un exemple où ce mécanisme ne serait pas satisfaisant.
En y re-réflechissant, tu dois pouvoir, en mettant explictement une methode unlock, un attribut "locked" et un destructeur qui fait le unlock si ça n'a pas déjà été fait.
En y re-réflechissant, tu dois pouvoir, en mettant explictement
une methode unlock, un attribut "locked" et un destructeur qui
fait le unlock si ça n'a pas déjà été fait.
En y re-réflechissant, tu dois pouvoir, en mettant explictement une methode unlock, un attribut "locked" et un destructeur qui fait le unlock si ça n'a pas déjà été fait.