Je suis d'accord sur ce point, j'utilise aussi ce genre de construction en Ocaml par exemple, ou il est d'usage de faire cela avec des clotures, même sans construction dans le langage lui même:
Lock.with_lockl(fun_->now_do;something)
permettent de visualiser qu'une instruction a un coût
Je ne comprends pas où tu veux en venir avec cette affirmation. Je ne connais pas vraiment de construction qui cache le verrouillage. Si tu opposes ça au RAII décrit plus haut, en rust tu écrirais :
letlocked_int=RWLock::new(42);letmutint_ref=locked_int.write();ifint_ref<12{*int_ref=12;}// Ici le verrou est relaché de manière implicite par le destructeur de `int_ref`
Je pense qu'en C++ la construction est similaire, le verrouillage (ce qui est vraiment couteux) est explicite, seul le déverouillage est implicite. Ce qui est un peu le cas avec "with" aussi, le deverouillage arrive à la fin du scope lexical du block with.
[^] # Re: Verrou et RAII
Posté par Enj0lras . En réponse à la dépêche Instantané sur le parallélisme et le code. Évalué à 2. Dernière modification le 24 juin 2015 à 11:06.
Je suis d'accord sur ce point, j'utilise aussi ce genre de construction en Ocaml par exemple, ou il est d'usage de faire cela avec des clotures, même sans construction dans le langage lui même:
Je ne comprends pas où tu veux en venir avec cette affirmation. Je ne connais pas vraiment de construction qui cache le verrouillage. Si tu opposes ça au RAII décrit plus haut, en rust tu écrirais :
Je pense qu'en C++ la construction est similaire, le verrouillage (ce qui est vraiment couteux) est explicite, seul le déverouillage est implicite. Ce qui est un peu le cas avec "with" aussi, le deverouillage arrive à la fin du scope lexical du block with.