Write a Blog >>
Mon 19 Jun 2017 17:25 - 17:50 at Aula Master - Static Analysis Chair(s): Loris D'Antoni

Asynchronous programming is a standard approach for designing responsive applications. Modern languages such as C# provide primitives for the disciplined use of asynchrony. In spite of this, programs can deadlock because of incorrect use of blocking operations along with non-blocking (asynchronous) operations. While developers already know about this problem, there is no automated technique to detect deadlocks in asynchronous C# programs.

We present DeadWait, the first deadlock detection technique for asynchronous C# programs. We formulate necessary conditions for a deadlock to occur in a program using a novel program representation that captures the asynchronous control flow semantics of C#. We design a static analysis to construct the program representation and identify deadlocks.

Using DeadWait, we found 42 previously unknown deadlocks in 7 asynchronous C# libraries. We reported the deadlocks to the library developers. They have confirmed and fixed 40 of them. Thus, DeadWait is a useful technique to find real deadlocks in asynchronous C# programs.

Mon 19 Jun

16:10 - 17:50: PLDI Research Papers - Static Analysis at Aula Master
Chair(s): Loris D'AntoniUniversity of Wisconsin–Madison
pldi-2017-papers149788140000016:10 - 16:35
Zachary KincaidPrinceton University, Jason BreckUniversity of Wisconsin-Madison, Ashkan Forouhi BoroujeniUniversity of Wisconsin-Madison, Thomas RepsUniversity of Wisconsin - Madison and Grammatech Inc.
Media Attached
pldi-2017-papers149788290000016:35 - 17:00
Rei ThiessenUniversity of Waterloo, Ondřej LhotákUniversity of Waterloo, Canada
Media Attached
pldi-2017-papers149788440000017:00 - 17:25
Tian TanUNSW Australia, Yue LiUNSW Australia, Jingling XueUNSW Australia
Pre-print Media Attached
pldi-2017-papers149788590000017:25 - 17:50
Anirudh SanthiarIndian Institute of Science, Aditya KanadeIndian Institute of Science, Bangalore
Media Attached