La programmation concurrente et le cortège de deadlocks qui l'accompagne sont plus que jamais d'actualité. CCR est une API concurrente proposée par Microsoft pour .Net, dont l’originalité est de ne pas utiliser de verrous. Partons à sa découverte.
Tout programmeur qui s'est essayé à écrire un petit peu de code concurrent a subi les turpitudes de l'ennemi public n°1 en la matière: le deadlock. Cette condition de verrou mortel se produit quand deux flux d'exécution attendent chacun que l'autre libère une ressource telle que verrou, section critique, sémaphore ou autre. Et s'il était possible de faire de la programmation concurrente sans verrou ? Tout serait beaucoup plus simple. C'est l'idée qui a présidé au développement de l'API CCR, qui fournit un modèle de programmation minimisant notablement les risques et facilitant la conception des applications. Si CCR n'éradique pas le deadlock définitivement (est-ce seulement possible ?), il est un outil à découvrir absolument. CCR est la fondation de Microsoft Robotics Developer Studio, mais elle peut parfaitement être utilisée seule, avec n'importe quel langage .Net, car ce n'est concrètement qu'un jeu d'assemblies. CCR est d'ailleurs également à la base de DSS, une API pour le développement d'applications concurrentes distribuées. Nous allons quant à nous découvrir CCR en écrivant un petit peu de code concurrent classique. CCR n'existe pas en distribution autonome gratuite, mais il est au coeur de Robotics Developer Studio en Express Edition, donc gratuite.
Frédéric Mazué