* The competing threads must then wait until the owner has written a 0 to the mutex beforfe they can attempt to modify the locked memory.\r
*\r
* Interet\r
- * On utilise un lock lorsque l'opération qui doit être synchroniser ne possède pas d'opérateur atomic (comme atomicADD, ...),\r
- * ou lorsqui'il s'agit de plusieurs opérations à synchroniser (joue alors le role de section critique)\r
+ * On utilise un lock lorsque l'op�ration qui doit �tre synchroniser ne poss�de pas d'op�rateur atomic (comme atomicADD, ...),\r
+ * ou lorsqui'il s'agit de plusieurs op�rations � synchroniser (joue alors le role de section critique)\r
*\r
* Note :\r
*\r
- * Lock ne laisse aucune trace coté host, il s'instancie only coté device: Code moins invasif\r
- * LockMixte laisse une trace coté host. Code plus invasif\r
+ * Lock ne laisse aucune trace cot� host, il s'instancie only cot� device: Code moins invasif\r
+ * LockMixte laisse une trace cot� host. Code plus invasif\r
*\r
* Use (Device side only)\r
*\r
*\r
* // Global variable of .cu\r
- * __device__ int mutex=0; // Attention à l'initialisation\r
+ * __device__ int mutex=0; // Attention � l'initialisation\r
*\r
* // variable local inside a kernel (same .cu as variable mutex)\r
* Lock lock=Lock(&mutex);\r
// Solution:\r
// atomicCAS = atomic Compare And Swap\r
// Prototype : c atomicCAS(ptr,a,b)\r
- // Action : compare ptr avec a, si egale affecte b à ptr, renvoie ptr\r
+ // Action : compare ptr avec a, si egale affecte b � ptr, renvoie ptr\r
\r
// Tant que ptrDev_mutex!=0 le thread cuda boucle sur while\r
- // Des qu'il vaut 0, il met le mutex à 1 et lock se termine\r
+ // Des qu'il vaut 0, il met le mutex � 1 et lock se termine\r
while (atomicCAS(ptrDevMutexGM, 0, 1) != 0);\r
}\r
\r
// Solution 1:\r
//\r
// *ptrDev_mutex=0;\r
- // Aucun thread en competition ici. L'affectation n'a pas besoin d'être atomique.\r
+ // Aucun thread en competition ici. L'affectation n'a pas besoin d'�tre atomique.\r
// Solution satisfaisante.\r
//\r
// Solution 2 (prefered for symetric approach)\r
int* ptrDevMutexGM;\r
};\r
\r
-#endif \r
+#endif\r
\r
/*----------------------------------------------------------------------*\\r
|* End *|\r