Introducing Locksmith - an open source tool for detecting potential deadlocks in C and C++

In today’s world of multi-core CPUs, concurrent programming is more important than ever. Unfortunately, concurrency errors can be difficult to debug. Even worse, they are often very difficult to reproduce when testing.

Locksmith is a tool which can help detect potential deadlocks before they happen. It can detect common concurrency mistakes, such as taking locks in an inconsistent order, or unlocking a mutex from a different thread than the one which locked it. It does this by analyzing the runtime behavior of the application.

Locksmith can be used in C, C++, or Objective C. Because it hooks into the pthreads library, it can also be used with frameworks which build on top of pthreads, like boost::mutex or Glib::mutex. Currently, it has been tested on Linux and FreeBSD.

This talk will describe some challenges in debugging concurrent applications, some useful approaches, and how Locksmith can help.

People planning to attend this session also want to see:

Colin McCabe

Cloudera

My interests are in big data, storage, and systems-level software. At Cloudera, I mostly work on the Hadoop Distributed Filesystem (HDFS), a key component of the big data ecosystem. Prior to that, I worked on the Ceph distributed filesystem, a petabyte-scale distributed filesystem.