On Sun, October 12, 2008 11:59 am, Sebastian Moors wrote:
> i'm a little bit unsure about the stability of hydrogen at the moment.
> You can read often statements at the forum like "very buggy" or
> "segfaults on startup". But the most people don't reply on questions
Most users probably don't have core dumps enabled... which is the only way
to get them besides running through a debugger (ewwwww). Correct me if
I'm wrong.
I've analyzed 6 core dumps on my system, and have also dealt with some
other segfaults of this sort... and here's what I think:
We need someone to go through and audit the lock/unlock code on the audio
side. These are almost always happening when the audio engine is
starting, stopping, or restarting. Somewhere in there, somebody
dereferences a bad pointer.
I think there are several places where we have code like this:
int foo(void)
{
AudioEngine::get_instance()->lock("foo()");
AudioEngine::get_instance()->bar();
/* ... */
return 0;
}
Well, on start-up and shut-down, it's possible the audio engine (or H2 or
a driver or the sampler or the audio outputs or whatever) has been DELETED
while we were waiting on the lock. But, after obtaining the lock we
assume that everything is OK and proceed with the processing. Then we
crash when we dereference a bad pointer. (However, as far as I know, we
haven't set up any good ways to check for this.)
Thanks,
Gabriel
--
G a b r i e l M B e d d i n g f i e l d
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Hydrogen-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hydrogen-devel