kirancodes.me
To Proof Maintenance & Beyond!

Static data race detection for concurrent programs with asynchronous calls

Vineet Kahlon, Nishant Sinha, Erik Kruus, Yun Zhang

Abstract

A large number of industrial concurrent programs are being designed based on a model which combines threads with event-based communication. These programs consist of several threads which perform computation by dispatching tasks to other threads via asynchronous function calls. These asynchronous function calls are implemented using function objects, which are essentially wrappers containing a pointer to the function that should be executed on a particular thread with the corresponding arguments. In many cases, the arguments, in turn, contain function objects which serve as callbacks. Verifying such programs which involves reasoning about complex concurrency constructs comprising function pointers and callback functions is extremely tricky especially in the presence of recursion. In this paper, we present a fast and accurate static data race detection technique for multi-threaded C programs with asynchronous function calls and demonstrate its application to real-life software.

BibTeX
@inproceedings{Kahlon-al:FSE09,
  author    = {Vineet Kahlon and
               Nishant Sinha and
               Erik Kruus and
               Yun Zhang},
  title     = {Static data race detection for concurrent programs with asynchronous calls},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {13--22},
  publisher = {{ACM}},
  year      = {2009},
}

Related papers