SDL_mixer hangs in SDL_SYS_CreateThread

I don’t understand why it is hanging here? I am running this under PPC-Linux.

Any help would be appreciated. Am I forgetting to do something simple? >From all the examples I’ve looked at it doesn’t seem that I need to place the call to Mix_OpenAudio in a separate thread? What /dev does this call use?

Program received signal SIGINT, Interrupt.
0x10191954 in __syscall_rt_sigsuspend ()
(gdb) where
#0 0x10191954 in __syscall_rt_sigsuspend ()
#1 0x101916fc in sigsuspend ()
#2 0x100e0620 in __pthread_wait_for_restart_signal ()
#3 0x100dfcf8 in pthread_create ()
#4 0x101573b0 in SDL_SYS_CreateThread (thread=0x1044eb28, args=0x1044ee50)
at SDL_systhread.c:99
#5 0x10157200 in SDL_CreateThread (fn=0x10144e10 <SDL_RunAudio>,
data=0x10446a08) at SDL_thread.c:267
#6 0x1014569c in SDL_OpenAudio (desired=0x7ffffc38, obtained=0x102e1390)
at SDL_audio.c:478
#7 0x100fd148 in Mix_OpenAudio (frequency=-4, format=8, nchannels=2147482200,
chunksize=8) at mixer.c:277
#8 0x1001be5c in SoundManager::SoundManager (this=0x1044677c)
at SoundManager.cpp:45
#9 0x1001bd38 in SoundManager::Instance () at SoundManager.cpp:24
#10 0x1000b298 in TPI4PHAL::init ()
#11 0x10010594 in App::run (this=0x10316f94) at App.cpp:170
#12 0x10005a2c in main ()
#13 0x1018cec4 in __libc_start_main ()

The code in question follows:

m_idCount = 1;
int audio_rate = 22050;
Uint16 audio_format = AUDIO_S16; /* 16-bit stereo */
int audio_channels = 2;
int audio_buffers = 4096;

// start SDL with audio support
if (SDL_Init(SDL_INIT_AUDIO)==-1) {
DiagMsg(oidMisc, emSeverityError, “SDL_Init: %s”, SDL_GetError());
// open 44.1KHz, signed 16bit, system byte order, stereo audio,
// using 1024 byte chunks
// if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1) {
if(Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers)) {
DiagMsg(oidMisc, emSeverityError, “Mix_OpenAudio: %s\n”, Mix_GetError());


p.s I am not currently subscribed to the mailing list so please reply personally.