The industry has placed a big bet on future single-chip performance gains coming from increasing core counts. This will only be a winning wager if software can be programmed to take advantage of parallel processors, and unfortunately, concurrent programming is difficult. Multithreading adds entirely new classes of potential bugs to those that must be considered by developers.
This paper describes some common concurrency pitfalls and explains how static analysis with CodeSonar® can help find such defects without executing the program. CodeSonar ships with a range of advanced checks for problems that can arise in concurrent programs. For example, it includes an innovative Data Race analysis that is paired with user interface functionality for understanding the interactions between different program threads. In addition to the included checkers, an extension API is provided, enabling users to add their own checks for software defects.