From: Jonathan W. <jw...@ju...> - 2013-07-08 15:12:21
|
Hi everyone In the last week or so I upgraded my development machine (to Slackware 14.0) and this brought with it a newer compiler: gcc 4.7.1 (compared with 4.5.2 I had previously). I'm now getting segfaults when jackd/ffado shuts down whereas earlier shutdowns were always clean. The culprit seems to be _Unwind_Resume, which is called at the end of SystemTimeSource::SleepUsecRelative() when the nanosleep() is aborted with a pthread_cancel() in the main thread. I'm getting this for MOTU and RME interfaces so I don't think it's driver specific. All c++ components used by ffado (libxml++, glibmm, libconfig++ etc) have been compiled by gcc 4.7.1 so I don't think this is an obscure gcc/c++ version mismatch thing. The use of pthread_cancel() and pthread_join() in this context looks sound to me so I'm not entirely sure what could be going wrong. Perhaps there's another subtle memory corruption bug. Before I dig into this, has anyone else noticed similar behaviour with recent gcc versions? Regards jonathan |