<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>destroy a newly loaded audio stream will cause program freeze.</title>
		<link>http://www.allegro.cc/forums/view/610639</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 16 Jul 2012 14:17:08 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If i do the follow code:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_AUDIO_STREAM"><span class="a">ALLEGRO_AUDIO_STREAM</span></a><span class="k3">*</span> stream<span class="k2">;</span>
...
stream <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_audio_stream"><span class="a">al_load_audio_stream</span></a><span class="k2">(</span>filename, <span class="n">4</span>, <span class="n">2048</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/al_destroy_audio_stream"><span class="a">al_destroy_audio_stream</span></a><span class="k2">(</span>stream<span class="k2">)</span><span class="k2">;</span>
...
</pre></div></div><p>
will cause the main thread freeze.</p><p>Attached file is a complete test. I tested the wav and ogg.</p><p>The main thread is waiting for join.<br />Here is the stack trace:</p><div class="source-code snippet"><div class="inner"><pre><span class="k3">&gt;</span>  a.exe<span class="k3">!</span>_al_thread_join<span class="k2">(</span>_AL_THREAD <span class="k3">*</span> thread<span class="k3">=</span><span class="n">0x0044c350</span><span class="k2">)</span>  Line <span class="n">78</span> <span class="k3">+</span> <span class="n">0x10</span> bytes  C
   a.exe<span class="k3">!</span><a href="http://www.allegro.cc/manual/al_join_thread"><span class="a">al_join_thread</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_THREAD"><span class="a">ALLEGRO_THREAD</span></a> <span class="k3">*</span> thread<span class="k3">=</span><span class="n">0x0044c350</span>, <span class="k1">void</span> <span class="k3">*</span> <span class="k3">*</span> ret_value<span class="k3">=</span><span class="n">0x00000000</span><span class="k2">)</span>  Line <span class="n">201</span> <span class="k3">+</span> <span class="n">0x9</span> bytes  C
   a.exe<span class="k3">!</span>wav_stream_close<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_AUDIO_STREAM"><span class="a">ALLEGRO_AUDIO_STREAM</span></a> <span class="k3">*</span> stream<span class="k3">=</span><span class="n">0x00448108</span><span class="k2">)</span>  Line <span class="n">273</span> <span class="k3">+</span> <span class="n">0x11</span> bytes  C
   a.exe<span class="k3">!</span><a href="http://www.allegro.cc/manual/al_destroy_audio_stream"><span class="a">al_destroy_audio_stream</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_AUDIO_STREAM"><span class="a">ALLEGRO_AUDIO_STREAM</span></a> <span class="k3">*</span> stream<span class="k3">=</span><span class="n">0x00448108</span><span class="k2">)</span>  Line <span class="n">128</span> <span class="k3">+</span> <span class="n">0x11</span> bytes  C
   ogg.exe<span class="k3">!</span>main<span class="k2">(</span><span class="k1">int</span> argc<span class="k3">=</span><span class="n">0x00000002</span>, <span class="k1">char</span> <span class="k3">*</span> <span class="k3">*</span> argv<span class="k3">=</span><span class="n">0x00441ad0</span><span class="k2">)</span>  Line <span class="n">24</span> <span class="k3">+</span> <span class="n">0x9</span> bytes  C
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (xpolife)</author>
		<pubDate>Mon, 16 Jul 2012 14:17:08 +0000</pubDate>
	</item>
</rss>
