We don't use msg in yyerror, don't name it.
C++11: Even though we can't use <thread> everywhere yet, we can get
cleaner code by using std::vector instead of boost::thread_group.