Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > main-testing > by-pkgid > 187676b5433787923dfa2cdd6900c6cd > files > 183

lib64pulseaudio-devel-0.9.15-2.0.7mdv2009.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>PulseAudio: thread-mainloop.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>thread-mainloop.h File Reference</h1>A thread based event loop implementation based on pa_mainloop.  
<a href="#_details">More...</a>
<p>

<p>
<a href="thread-mainloop_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An opaque threaded main loop object.  <a href="#40393b9b64dc8213bcd5f017344baf74"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#3b8bf5f49d7eb9d6fe6ea008eb6482f2">pa_threaded_mainloop_new</a> (void)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a new threaded main loop object.  <a href="#3b8bf5f49d7eb9d6fe6ea008eb6482f2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#00afff8173668f12e19d574cd4e4134b">pa_threaded_mainloop_free</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free a threaded main loop object.  <a href="#00afff8173668f12e19d574cd4e4134b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#2faf4ddb9a94f74d6e7ef80843e73d30">pa_threaded_mainloop_start</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Start the event loop thread.  <a href="#2faf4ddb9a94f74d6e7ef80843e73d30"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#2a017a59832e81a44aa8989c403fb70e">pa_threaded_mainloop_stop</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminate the event loop thread cleanly.  <a href="#2a017a59832e81a44aa8989c403fb70e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#2fd002f510ed24cabacb63a26bf4c977">pa_threaded_mainloop_lock</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock the event loop object, effectively blocking the event loop thread from processing events.  <a href="#2fd002f510ed24cabacb63a26bf4c977"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#b2b2beaa3a66135da67d61db211f0829">pa_threaded_mainloop_unlock</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unlock the event loop object, inverse of <a class="el" href="thread-mainloop_8h.html#2fd002f510ed24cabacb63a26bf4c977" title="Lock the event loop object, effectively blocking the event loop thread from processing...">pa_threaded_mainloop_lock()</a>.  <a href="#b2b2beaa3a66135da67d61db211f0829"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#c96d19260567d0406350f1b3a14c4bed">pa_threaded_mainloop_wait</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait for an event to be signalled by the event loop thread.  <a href="#c96d19260567d0406350f1b3a14c4bed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#d253b70911af81c04417793841a15766">pa_threaded_mainloop_signal</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m, int wait_for_accept)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Signal all threads waiting for a signalling event in <a class="el" href="thread-mainloop_8h.html#c96d19260567d0406350f1b3a14c4bed" title="Wait for an event to be signalled by the event loop thread.">pa_threaded_mainloop_wait()</a>.  <a href="#d253b70911af81c04417793841a15766"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#254b0862e30845a4b0427a7a74b3db91">pa_threaded_mainloop_accept</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accept a signal from the event thread issued with <a class="el" href="thread-mainloop_8h.html#d253b70911af81c04417793841a15766" title="Signal all threads waiting for a signalling event in pa_threaded_mainloop_wait()...">pa_threaded_mainloop_signal()</a>.  <a href="#254b0862e30845a4b0427a7a74b3db91"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#487aaf9946ccddbd54c68a6c3fb3fe39">pa_threaded_mainloop_get_retval</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the return value as specified with the main loop's quit() routine.  <a href="#487aaf9946ccddbd54c68a6c3fb3fe39"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#ab3c05099eafa9947aa7894af2f79fda">pa_threaded_mainloop_get_api</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the abstract main loop abstraction layer vtable for this main loop.  <a href="#ab3c05099eafa9947aa7894af2f79fda"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="thread-mainloop_8h.html#7a5f04b51cc3011de90e1490c8baacd0">pa_threaded_mainloop_in_thread</a> (<a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *m)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns non-zero when called from withing the event loop thread.  <a href="#7a5f04b51cc3011de90e1490c8baacd0"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A thread based event loop implementation based on pa_mainloop. 
<p>
The event loop is run in a helper thread in the background. A few synchronization primitives are available to access the objects attached to the event loop safely. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="40393b9b64dc8213bcd5f017344baf74"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop" ref="40393b9b64dc8213bcd5f017344baf74" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> <a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
An opaque threaded main loop object. 
<p>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="254b0862e30845a4b0427a7a74b3db91"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_accept" ref="254b0862e30845a4b0427a7a74b3db91" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pa_threaded_mainloop_accept           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Accept a signal from the event thread issued with <a class="el" href="thread-mainloop_8h.html#d253b70911af81c04417793841a15766" title="Signal all threads waiting for a signalling event in pa_threaded_mainloop_wait()...">pa_threaded_mainloop_signal()</a>. 
<p>
This call should only be used in conjunction with <a class="el" href="thread-mainloop_8h.html#d253b70911af81c04417793841a15766" title="Signal all threads waiting for a signalling event in pa_threaded_mainloop_wait()...">pa_threaded_mainloop_signal()</a> with a non-zero wait_for_accept value. 
</div>
</div><p>
<a class="anchor" name="00afff8173668f12e19d574cd4e4134b"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_free" ref="00afff8173668f12e19d574cd4e4134b" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pa_threaded_mainloop_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free a threaded main loop object. 
<p>
If the event loop thread is still running, it is terminated using <a class="el" href="thread-mainloop_8h.html#2a017a59832e81a44aa8989c403fb70e" title="Terminate the event loop thread cleanly.">pa_threaded_mainloop_stop()</a> first. 
</div>
</div><p>
<a class="anchor" name="ab3c05099eafa9947aa7894af2f79fda"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_get_api" ref="ab3c05099eafa9947aa7894af2f79fda" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structpa__mainloop__api.html">pa_mainloop_api</a>* pa_threaded_mainloop_get_api           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the abstract main loop abstraction layer vtable for this main loop. 
<p>

</div>
</div><p>
<a class="anchor" name="487aaf9946ccddbd54c68a6c3fb3fe39"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_get_retval" ref="487aaf9946ccddbd54c68a6c3fb3fe39" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pa_threaded_mainloop_get_retval           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the return value as specified with the main loop's quit() routine. 
<p>

</div>
</div><p>
<a class="anchor" name="7a5f04b51cc3011de90e1490c8baacd0"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_in_thread" ref="7a5f04b51cc3011de90e1490c8baacd0" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pa_threaded_mainloop_in_thread           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns non-zero when called from withing the event loop thread. 
<p>
<dl class="since" compact><dt><b>Since:</b></dt><dd>0.9.7 </dd></dl>

</div>
</div><p>
<a class="anchor" name="2fd002f510ed24cabacb63a26bf4c977"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_lock" ref="2fd002f510ed24cabacb63a26bf4c977" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pa_threaded_mainloop_lock           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Lock the event loop object, effectively blocking the event loop thread from processing events. 
<p>
You can use this to enforce exclusive access to all objects attached to the event loop. This lock is recursive. This function may not be called inside the event loop thread. Events that are dispatched from the event loop thread are executed with this lock held. 
</div>
</div><p>
<a class="anchor" name="3b8bf5f49d7eb9d6fe6ea008eb6482f2"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_new" ref="3b8bf5f49d7eb9d6fe6ea008eb6482f2" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a>* pa_threaded_mainloop_new           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate a new threaded main loop object. 
<p>
You have to call <a class="el" href="thread-mainloop_8h.html#2faf4ddb9a94f74d6e7ef80843e73d30" title="Start the event loop thread.">pa_threaded_mainloop_start()</a> before the event loop thread starts running. 
</div>
</div><p>
<a class="anchor" name="d253b70911af81c04417793841a15766"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_signal" ref="d253b70911af81c04417793841a15766" args="(pa_threaded_mainloop *m, int wait_for_accept)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pa_threaded_mainloop_signal           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>wait_for_accept</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Signal all threads waiting for a signalling event in <a class="el" href="thread-mainloop_8h.html#c96d19260567d0406350f1b3a14c4bed" title="Wait for an event to be signalled by the event loop thread.">pa_threaded_mainloop_wait()</a>. 
<p>
If wait_for_release is non-zero, do not return before the signal was accepted by a <a class="el" href="thread-mainloop_8h.html#254b0862e30845a4b0427a7a74b3db91" title="Accept a signal from the event thread issued with pa_threaded_mainloop_signal().">pa_threaded_mainloop_accept()</a> call. While waiting for that condition the event loop object is unlocked. 
</div>
</div><p>
<a class="anchor" name="2faf4ddb9a94f74d6e7ef80843e73d30"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_start" ref="2faf4ddb9a94f74d6e7ef80843e73d30" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int pa_threaded_mainloop_start           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Start the event loop thread. 
<p>

</div>
</div><p>
<a class="anchor" name="2a017a59832e81a44aa8989c403fb70e"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_stop" ref="2a017a59832e81a44aa8989c403fb70e" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pa_threaded_mainloop_stop           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Terminate the event loop thread cleanly. 
<p>
Make sure to unlock the mainloop object before calling this function. 
</div>
</div><p>
<a class="anchor" name="b2b2beaa3a66135da67d61db211f0829"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_unlock" ref="b2b2beaa3a66135da67d61db211f0829" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pa_threaded_mainloop_unlock           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unlock the event loop object, inverse of <a class="el" href="thread-mainloop_8h.html#2fd002f510ed24cabacb63a26bf4c977" title="Lock the event loop object, effectively blocking the event loop thread from processing...">pa_threaded_mainloop_lock()</a>. 
<p>

</div>
</div><p>
<a class="anchor" name="c96d19260567d0406350f1b3a14c4bed"></a><!-- doxytag: member="thread&#45;mainloop.h::pa_threaded_mainloop_wait" ref="c96d19260567d0406350f1b3a14c4bed" args="(pa_threaded_mainloop *m)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void pa_threaded_mainloop_wait           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="thread-mainloop_8h.html#40393b9b64dc8213bcd5f017344baf74">pa_threaded_mainloop</a> *&nbsp;</td>
          <td class="paramname"> <em>m</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Wait for an event to be signalled by the event loop thread. 
<p>
You can use this to pass data from the event loop thread to the main thread in synchronized fashion. This function may not be called inside the event loop thread. Prior to this call the event loop object needs to be locked using <a class="el" href="thread-mainloop_8h.html#2fd002f510ed24cabacb63a26bf4c977" title="Lock the event loop object, effectively blocking the event loop thread from processing...">pa_threaded_mainloop_lock()</a>. While waiting the lock will be released, immediately before returning it will be acquired again. 
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Sep 2 04:18:20 2009 for PulseAudio by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>