A race condition detection system and method statically detects potential race conditions in a multi-threaded computer program. The race condition detector builds a synchronization graph representing at least a subset of a computer program's method declarations, field declarations, and synchronization statements. Edges are constructed between the nodes representing execution paths in the computer program. Each node is associated with a set of lock designations that correspond to all locks that are consistently held along all executions paths in the computer program to the respective node. The race condition detector analyzes this information to determine whether accesses to object data fields are consistently protected by an appropriate lock. An object data field access that is not protected by an appropriate lock indicates a potential race condition. At least a subset of indicated potential race conditions are reported.

Un système et une méthode de détection d'état de course détecte statiquement des conditions potentielles de course dans un programme machine multi-fileté. Le détecteur d'état de course établit un graphique de synchronisation représentant au moins un sous-ensemble de déclarations de la méthode d'un programme machine, de déclarations de champ, et de rapports de synchronisation. Des bords sont construits entre les noeuds représentant des chemins d'exécution dans le programme machine. Chaque noeud est associé à un ensemble de désignations de serrure qui correspondent à toutes les serrures qui sont uniformément tenues le long de tous les chemins d'exécutions dans le programme machine au noeud respectif. Le détecteur d'état de course analyse cette information pour déterminer si des accès aux zones d'information d'objet sont uniformément protégés par une serrure appropriée. Un accès de zone d'information d'objet qui n'est pas protégé par une serrure appropriée indique un état potentiel de course. Au moins un sous-ensemble d'états potentiels indiqués de course sont rapportés.

 
Web www.patentalert.com

< (none)

< Distributed execution software license server

> Method and apparatus that utilizes state locks to lock resources

> (none)

~ 00025