When following this tutorial:
I changed some names but for the most part it the same, but on exit the
unloading of the ogg file segfaults in linux. here is the backtrace:
[Thread 0x40800950 (LWP 7358) exited]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x2b84fcef47f0 (LWP 7355)]
0x00002b84fcce02d3 in pthread_mutex_lock () from
#0 0x00002b84fcce02d3 in pthread_mutex_lock () from
#1 0x00002b84fb3adf42 in alSourceUnqueueBuffers ()
#2 0x0000000000402824 in \~SSource (this=0x7fffafb2b9b0) at
#3 0x0000000000402e3f in main (argc=1, argv=0x7fffafb2c318)
Any ideas? I put the empty/release code in the deconstructor. I see that
it is flipping out on the alSourceUnqueueBuffers() because of some issue
with pthreads but honestly I have no clue why or how to fix it. The
program this is going to be used for will need to load and unload OGG
files at well so this is really giving me issues. OH and last but not
lease if you notice the update() code also calls UnquequeBuffers without
a fault so… that just makes me that much more lost.
Please log in or register to post a reply.
My immediate guess would be that your have accidentally deleted the
source and/or buffer before the call to alSourceUnqueueBuffers.
well I found the problem.
the following code is returning this “in ogg decon
# of buffers queued 6312384”
std::cout<<“in ogg decon “<<std::endl;
std::cout<<”# of buffers queued “<<temp<<std::endl;
so the GET is returning the wrong # of buffers that are queued…. any
sorry to double post, but I finally fixed it.
I wasn’t killing the ogg before calling alutExit(); [didn’t delete the
object before running it]