<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>game crashing on al_wait_for_event callee</title>
		<link>http://www.allegro.cc/forums/view/610288</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 06 Jun 2012 03:29:45 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, <br />my game&#39;s build crashes on one of the callees of al_wait_for_event. al_wait_for event is located in this function:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">void</span> run_core<span class="k2">(</span>Core <span class="k3">*</span> core<span class="k2">)</span>
<span class="number">  2</span>  <span class="k2">{</span>
<span class="number">  3</span>     <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>core-&gt;timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>     Background <span class="k3">*</span> background <span class="k3">=</span> init_background<span class="k2">(</span><span class="s">"../frames/frames.json"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>    <span class="k1">while</span><span class="k2">(</span><span class="k1">not</span> end_run<span class="k2">)</span>
<span class="number">  6</span>    <span class="k2">{</span>
<span class="number">  7</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number">  8</span>          
<span class="number">  9</span>      <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>core-&gt;queue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>      <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span> 
<span class="number"> 11</span>      <span class="k2">{</span>
<span class="number"> 12</span>        <span class="c">/* update physics */</span>
<span class="number"> 13</span>        draw_background<span class="k2">(</span>background-&gt;frame<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>        frame_step<span class="k2">(</span>background<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>        <a href="http://www.allegro.cc/manual/blit"><span class="a">blit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>      <span class="k2">}</span>
<span class="number"> 17</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>  <span class="k2">{</span> end_run <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 18</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 19</span>      <span class="k2">{</span>
<span class="number"> 20</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> state<span class="k2">;</span>
<span class="number"> 21</span>        <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>        <span class="c">/* get input update */</span>
<span class="number"> 23</span>      <span class="k2">}</span>
<span class="number"> 24</span>    <span class="k2">}</span>
<span class="number"> 25</span>    destroy_background<span class="k2">(</span>background<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span><span class="k2">}</span>
</div></div><p>

Prior to calling this function, I have calls to al_create_event_queue, and al_register_event_source for the queue,timer and keyboard respectively. I also assert that the calls succeeded by checking for NULL. Running it generates this trace:</p><div class="quote_container"><div class="title"><a href="http://">Quote</a>:</div><div class="quote"><p>
Process:         furi_debug [660]<br />Path:            /Volumes/VOLUME/*/furi_debug<br />Identifier:      furi_debug<br />Version:         <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /> (???)<br />Code Type:       X86-64 (Native)<br />Parent Process:  zsh [239]</p><p>Date/Time:       2012-05-25 18:08:27.306 +0000<br />OS Version:      Mac OS X 10.7.4 (11E53)<br />Report Version:  9</p><p>Interval Since Last Report:          198172 sec<br />Crashes Since Last Report:           79<br />Per-App Crashes Since Last Report:   55<br />Anonymous UUID:                      0987480B-D0A8-4583-9C35-A184280A4848</p><p>Crashed Thread:  5</p><p>Exception Type:  EXC_BAD_ACCESS (SIGSEGV)<br />Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000097</p><p>VM Regions Near 0x97:<br />--&gt; <br />    __TEXT                 000000010bb7e000-000000010bb80000 [    8K] r-x/rwx SM=COW  <i>Volumes/VOLUME</i>*</p><p>Application Specific Information:<br />objc[660]: garbage collection is OFF</p><p>Thread 0:: Dispatch queue: com.apple.main-thread<br />0   libsystem_kernel.dylib        	0x00007fff8b5b467a mach_msg_trap + 10<br />1   libsystem_kernel.dylib        	0x00007fff8b5b3d71 mach_msg + 73<br />2   com.apple.CoreFoundation      	0x00007fff916fd50c __CFRunLoopServiceMachPort + 188<br />3   com.apple.CoreFoundation      	0x00007fff91705c74 __CFRunLoopRun + 1204<br />4   com.apple.CoreFoundation      	0x00007fff91705486 CFRunLoopRunSpecific + 230<br />5   com.apple.HIToolbox           	0x00007fff8fe984d3 RunCurrentEventLoopInMode + 277<br />6   com.apple.HIToolbox           	0x00007fff8fe9f781 ReceiveNextEventCommon + 355<br />7   com.apple.HIToolbox           	0x00007fff8fe9f60e BlockUntilNextEventMatchingListInMode + 62<br />8   com.apple.AppKit              	0x00007fff8a4b8e31 _DPSNextEvent + 659<br />9   com.apple.AppKit              	0x00007fff8a4b8735 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 135<br />10  com.apple.AppKit              	0x00007fff8a4b5071 -[NSApplication run] + 470<br />11  liballegro-debug.5.0.dylib    	0x000000010bc70eb5 _al_osx_run_main + 3589 (osx_app_delegate.m:336)<br />12  liballegro_main-debug.5.0.dylib	0x000000010bd5ff2a main + 42 (osx_main.m:35)<br />13  furi_debug                    	0x000000010bb7ed34 start + 52</p><p>Thread 1:: Dispatch queue: com.apple.libdispatch-manager<br />0   libsystem_kernel.dylib        	0x00007fff8b5b67e6 kevent + 10<br />1   libdispatch.dylib             	0x00007fff8b0ba78a _dispatch_mgr_invoke + 923<br />2   libdispatch.dylib             	0x00007fff8b0b931a _dispatch_mgr_thread + 54</p><p>Thread 2:<br />0   libsystem_kernel.dylib        	0x00007fff8b5b6192 __workq_kernreturn + 10<br />1   libsystem_c.dylib             	0x00007fff8b2ab594 _pthread_wqthread + 758<br />2   libsystem_c.dylib             	0x00007fff8b2acb85 start_wqthread + 13</p><p>Thread 3:<br />0   libsystem_kernel.dylib        	0x00007fff8b5b6192 __workq_kernreturn + 10<br />1   libsystem_c.dylib             	0x00007fff8b2ab594 _pthread_wqthread + 758<br />2   libsystem_c.dylib             	0x00007fff8b2acb85 start_wqthread + 13</p><p>Thread 4:<br />0   libsystem_kernel.dylib        	0x00007fff8b5b5bca __psynch_cvwait + 10<br />1   libsystem_c.dylib             	0x00007fff8b2ad274 _pthread_cond_wait + 840<br />2   liballegro-debug.5.0.dylib    	0x000000010bbc3550 _al_cond_wait + 48 (aintuthr.h:81)<br />3   liballegro-debug.5.0.dylib    	0x000000010bbbb51d al_wait_for_event + 253 (events.c:336)<br />4   furi_debug                    	0x000000010bb7f0a2 run_core + 82 (core.c:77)<br />5   furi_debug                    	0x000000010bb7edd5 run_once + 85 (engine.c:24)<br />6   furi_debug                    	0x000000010bb7ed59 _al_mangled_main + 25 (engine.c:34)<br />7   liballegro-debug.5.0.dylib    	0x000000010bc7003f call_user_main + 31 (osx_app_delegate.m:214)<br />8   liballegro-debug.5.0.dylib    	0x000000010bc70069 +[AllegroAppDelegate app_main:] + 25 (osx_app_delegate.m:226)<br />9   com.apple.Foundation          	0x00007fff8ce6972a -[NSThread main] + 68<br />10  com.apple.Foundation          	0x00007fff8ce696a2 <u>_NSThread__main</u>_ + 1575<br />11  libsystem_c.dylib             	0x00007fff8b2a98bf _pthread_start + 335<br />12  libsystem_c.dylib             	0x00007fff8b2acb75 thread_start + 13</p><p>Thread 5 Crashed:<br />0   liballegro-debug.5.0.dylib    	0x000000010bbd31ad timer_thread_handle_tick + 77 (timernu.c:135)<br />1   liballegro-debug.5.0.dylib    	0x000000010bbd3127 timer_thread_proc + 119 (timernu.c:111)<br />2   liballegro-debug.5.0.dylib    	0x000000010bc71260 thread_proc_trampoline + 48 (uxthread.c:37)<br />3   libsystem_c.dylib             	0x00007fff8b2a98bf _pthread_start + 335<br />4   libsystem_c.dylib             	0x00007fff8b2acb75 thread_start + 13</p><p>Thread 5 crashed with X86 Thread State (64-bit):<br />  rax: 0xffffffffffffffff  rbx: 0x0000000000000000  rcx: 0x0000000000000000  rdx: 0x0000000000000008<br />  rdi: 0x000000010bce51c0  rsi: 0x0000000000000000  rbp: 0x00000001103f5ea0  rsp: 0x00000001103f5e60<br />   r8: 0x000000004fbfca9b   r9: 0x0000000001f40000  r10: 0x0000000000000001  r11: 0x00007fff788a4228<br />  r12: 0x0000000000007207  r13: 0x00000001103f6000  r14: 0x00007fe43190afd0  r15: 0x000000010bc71230<br />  rip: 0x000000010bbd31ad  rfl: 0x0000000000010206  cr2: 0x0000000000000097<br />Logical CPU: 2</p></div></div><p>

I have also attached the full trace report. How do I fix this? Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (iam_donald)</author>
		<pubDate>Fri, 25 May 2012 23:13:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm. Did you call al_init? al_create_timer? al_install_keyboard? Need more code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Fri, 25 May 2012 23:21:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes I did.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">static</span> <span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  2</span>
<span class="number">  3</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span> init_event_queue<span class="k2">(</span><span class="k2">)</span>
<span class="number">  4</span>  <span class="k2">{</span>
<span class="number">  5</span>    
<span class="number">  6</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span> queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  7</span>    queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number">  8</span>    <span class="k1">if</span><span class="k2">(</span><span class="k1">not</span> queue <span class="k2">)</span> <span class="k2">{</span> perror_with_context<span class="k2">(</span><span class="s">"Failed to create ALLEGRO_EVENT_QUEUE"</span>, __LINE__, __FILE__<span class="k2">)</span><span class="k2">;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span>EXIT_FAILURE<span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number">  9</span>    <span class="k1">return</span> queue<span class="k2">;</span>
<span class="number"> 10</span>  <span class="k2">}</span>
<span class="number"> 11</span>  
<span class="number"> 12</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span> init_timer<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span> queue<span class="k2">)</span>
<span class="number"> 13</span>  <span class="k2">{</span>
<span class="number"> 14</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span> timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BPS_TO_SECS"><span class="a">ALLEGRO_BPS_TO_SECS</span></a><span class="k2">(</span>FPS<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>    <span class="k1">if</span><span class="k2">(</span><span class="k1">not</span> timer<span class="k2">)</span> <span class="k2">{</span> perror_with_context<span class="k2">(</span><span class="s">"Failed to create ALLEGRO_TIMER"</span>, __LINE__, __FILE__<span class="k2">)</span><span class="k2">;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span>EXIT_FAILURE<span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 16</span>    <span class="k1">else</span> <span class="k2">{</span> <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 17</span>    <span class="k1">return</span> timer<span class="k2">;</span>
<span class="number"> 18</span>  <span class="k2">}</span>
<span class="number"> 19</span>  
<span class="number"> 20</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a> <span class="k3">*</span> init_input<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span> queue<span class="k2">)</span>
<span class="number"> 21</span>  <span class="k2">{</span>
<span class="number"> 22</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_SOURCE"><span class="a">ALLEGRO_EVENT_SOURCE</span></a> <span class="k3">*</span> input<span class="k2">;</span>
<span class="number"> 23</span>    <span class="k1">if</span><span class="k2">(</span><span class="k1">not</span> <a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span> perror_with_context<span class="k2">(</span><span class="s">"al_install_keyboard failed"</span>, __LINE__, __FILE__<span class="k2">)</span><span class="k2">;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span>EXIT_FAILURE<span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 24</span>    <span class="k1">else</span>
<span class="number"> 25</span>    <span class="k2">{</span>
<span class="number"> 26</span>      input <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>      <span class="k1">if</span><span class="k2">(</span><span class="k1">not</span> input<span class="k2">)</span> <span class="k2">{</span> perror_with_context<span class="k2">(</span><span class="s">"Failed to create ALLEGRO_EVENT_SOURCE"</span>, __LINE__, __FILE__<span class="k2">)</span><span class="k2">;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span>EXIT_FAILURE<span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 28</span>      <span class="k1">else</span> <span class="k2">{</span> <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>queue, input<span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
<span class="number"> 29</span>    <span class="k2">}</span>
<span class="number"> 30</span>    <span class="k1">return</span> input<span class="k2">;</span>
<span class="number"> 31</span>  <span class="k2">}</span>
<span class="number"> 32</span>
<span class="number"> 33</span><span class="k1">void</span> init_core<span class="k2">(</span>Core <span class="k3">*</span> core<span class="k2">)</span>
<span class="number"> 34</span>  <span class="k2">{</span>
<span class="number"> 35</span>    core-&gt;queue <span class="k3">=</span> init_event_queue<span class="k2">(</span>core-&gt;queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>    core-&gt;display <span class="k3">=</span> init_display<span class="k2">(</span>core-&gt;queue, W960_H540<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>    core-&gt;timer <span class="k3">=</span> init_timer<span class="k2">(</span>core-&gt;queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>    core-&gt;input <span class="k3">=</span> init_input<span class="k2">(</span>core <span class="k3">-</span><span class="k3">&gt;</span>queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>    <span class="c">/* init_font(); */</span>
<span class="number"> 40</span>    <span class="c">/* init audio */</span>
<span class="number"> 41</span>    <span class="c">/* init physics */</span>
<span class="number"> 42</span>  <span class="k2">}</span>
</div></div><p>

I went ahead and debugged it in GDB, the output:
</p><div class="quote_container"><div class="title"><a href="http://">Quote</a>:</div><div class="quote"><p>
Starting program: /Volumes/Work/dev/furi/core/furi_debug <br />Reading symbols for shared libraries . done<br />[Switching to process 1265 thread 0x5603]</p><p>Breakpoint 1, al_wait_for_event (queue=0x101132900, ret_event=0x103125bc8) at events.c:330<br />330	   ALLEGRO_EVENT *next_event = NULL;<br />(gdb) step<br />332	   ASSERT(queue);<br />(gdb) step       <br />334	   _al_mutex_lock(&amp;queue-&gt;mutex);<br />(gdb) print queue<br />$6 = (ALLEGRO_EVENT_QUEUE *) 0x101132900<br />(gdb) print *queue<br />$7 = {<br />  sources = {<br />    _itemsize = 8, <br />    _items = 0x1011d7f20 &quot;&quot;, <br />    _size = 3, <br />    _unused = 1<br />  }, <br />  events = {<br />    _itemsize = 72, <br />    _items = 0x10111f310 &quot;??\021\001\001&quot;, <br />    _size = 1, <br />    _unused = 0<br />  }, <br />  events_head = 0, <br />  events_tail = 0, <br />  mutex = {<br />    inited = true, <br />    mutex = {<br />      __sig = 1297437784, <br />      __opaque = &quot;\000\000\000\000` &quot;, &#39;\0&#39; &lt;repeats 11 times&gt;, &quot;\003\000\000\000\003\000\000\000\000\000\000\000\000\000\000h)\023\001\001\000\000\000l)\023\001\001\000\000\000\000\000\000\000\000\000\000&quot;<br />    }<br />  }, <br />  cond = {<br />    cond = {<br />      __sig = 1129270852, <br />      __opaque = &quot;\000\000\000\000\000\000\000?&quot;, &#39;\0&#39; &lt;repeats 12 times&gt;, &quot;\001&quot;, &#39;\0&#39; &lt;repeats 18 times&gt;<br />    }<br />  }<br />}<br />(gdb) step</p><p>Program received signal EXC_BAD_ACCESS, Could not access memory.<br />Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000097<br />[Switching to process 1265 thread 0x7307]<br />0x00000001000511ad in timer_thread_handle_tick (interval=70.631073999999998) at timernu.c:135<br />135	      timer-&gt;counter -= interval;<br />(gdb) 
</p></div></div><p>

I&#39;m still unsure of what is causing the crash, the ALLEGRO_EVENT_QUEUE object passed is not NULL.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (iam_donald)</author>
		<pubDate>Fri, 25 May 2012 23:30:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>How about the timer in the timer thread?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Wang)</author>
		<pubDate>Sat, 26 May 2012 06:21:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t see anything there that would cause it. Can you upload a little project zip so I can try it out. Source code?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Sat, 26 May 2012 07:38:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Peter wang: The timer in the timer thread is created by allegro when al_wait_for_event is called, the library takes care of initializing it I think.</p><p>Trent Gamblin: I&#39;ve attached the source zip and a json file, the source loads images using the json file attached. Please edit the file with your own image file paths.</p><p>Besides Allegro, the other dependencies you be needing are tmalloc of gperftools (<a href="http://code.google.com/p/gperftools/">http://code.google.com/p/gperftools/</a>) and jansson (<a href="http://www.digip.org/jansson/">http://www.digip.org/jansson/</a>). The makefile uses clang as the compiler, gcc works fines as well. Make commands are &#39;make clean&#39;, &#39;make furi&#39;, &#39;make furi_debug&#39;. Thanks for taking a look at this for me.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (iam_donald)</author>
		<pubDate>Sat, 26 May 2012 14:02:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><pre>
Thread 5 Crashed:
0 liballegro-debug.5.0.dylib 0x000000010bbd31ad timer_thread_handle_tick + 77 (timernu.c:135)
1 liballegro-debug.5.0.dylib 0x000000010bbd3127 timer_thread_proc + 119 (timernu.c:111)
2 liballegro-debug.5.0.dylib 0x000000010bc71260 thread_proc_trampoline + 48 (uxthread.c:37)
3 libsystem_c.dylib 0x00007fff8b2a98bf _pthread_start + 335
4 libsystem_c.dylib 0x00007fff8b2acb75 thread_start + 13
</pre><p>

This says the crash is in the timer thread. I think you are on the wrong path with al_wait_for_event.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Wang)</author>
		<pubDate>Sun, 27 May 2012 07:13:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yikes. I don&#39;t have time to install those deps and run and debug it right now. If you can break it down into a small test case then I can try that. Otherwise wait until tomorrow or something. But what Peter said is true.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Sun, 27 May 2012 07:15:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Fixed it. Thanks for the guidance.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (iam_donald)</author>
		<pubDate>Sun, 27 May 2012 15:59:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It was a bug in your program, correct? Allegro bugs keep me up at night.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Wang)</author>
		<pubDate>Mon, 04 Jun 2012 13:04:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah I botched a couple of mallocs in my code, silly me . You guys [contributors] are doing a fine job with Allegro. It&#39;s really powerful. Your work is very much appreciated <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (iam_donald)</author>
		<pubDate>Wed, 06 Jun 2012 03:29:45 +0000</pubDate>
	</item>
</rss>
