Checkmate: A generic static analyzer of Java multithreaded programs