diff options
| author | Staysail Systems, Inc <info@staysail.tech> | 2024-03-01 07:04:14 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-03-01 07:07:37 -0800 |
| commit | e4e646a6a9982ff932d83633157106a0b34975a2 (patch) | |
| tree | 9ee71c33531a9592ba0c66ad97ceb10c42168519 /man/v1.7.3/nng_thread_create.3supp.html | |
| parent | 66e28ffa9fe663908539550bf104716c5b4dc213 (diff) | |
| download | nng-e4e646a6a9982ff932d83633157106a0b34975a2.tar.gz nng-e4e646a6a9982ff932d83633157106a0b34975a2.tar.bz2 nng-e4e646a6a9982ff932d83633157106a0b34975a2.zip | |
Manual page updates for v1.7.3
Diffstat (limited to 'man/v1.7.3/nng_thread_create.3supp.html')
| -rw-r--r-- | man/v1.7.3/nng_thread_create.3supp.html | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/man/v1.7.3/nng_thread_create.3supp.html b/man/v1.7.3/nng_thread_create.3supp.html new file mode 100644 index 00000000..c9b87072 --- /dev/null +++ b/man/v1.7.3/nng_thread_create.3supp.html @@ -0,0 +1,156 @@ +--- +version: v1.7.3 +layout: manpage_v2 +title: nng_thread_create(3supp) +--- +<h1>nng_thread_create(3supp)</h1> +<div class="sect1"> +<h2 id="_name">NAME</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>nng_thread_create - create thread</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_synopsis">SYNOPSIS</h2> +<div class="sectionbody"> +<div class="listingblock"> +<div class="content"> +<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span><span class="tok-w"> </span><span class="tok-cpf"><nng/nng.h></span> +<span class="tok-cp">#include</span><span class="tok-w"> </span><span class="tok-cpf"><nng/supplemental/util/platform.h></span> + +<span class="tok-k">typedef</span><span class="tok-w"> </span><span class="tok-k">struct</span><span class="tok-w"> </span><span class="tok-nc">nng_thread</span><span class="tok-w"> </span><span class="tok-n">nng_thread</span><span class="tok-p">;</span> + +<span class="tok-kt">int</span><span class="tok-w"> </span><span class="tok-nf">nng_thread_create</span><span class="tok-p">(</span><span class="tok-n">nng_thread</span><span class="tok-w"> </span><span class="tok-o">**</span><span class="tok-n">thrp</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-kt">void</span><span class="tok-w"> </span><span class="tok-p">(</span><span class="tok-o">*</span><span class="tok-n">func</span><span class="tok-p">)(</span><span class="tok-kt">void</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-p">),</span><span class="tok-w"> </span><span class="tok-kt">void</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">arg</span><span class="tok-p">);</span></code></pre> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_description">DESCRIPTION</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>The <code>nng_thread_create()</code> function creates a single thread of execution, +running <em>func</em> with the argument <em>arg</em>. +The thread is started immediately. +A pointer to the thread object is returned in <em>thrp</em>.</p> +</div> +<div class="paragraph"> +<p>The intention of this program is to facilitate writing parallel programs. +Threads created by this program will be based upon the underlying +threading mechanism of the system that <em>NNG</em> is running on. +This may include use of coroutines.</p> +</div> +<div class="paragraph"> +<p>Using threads created by this function can make it easy to write +programs that use simple sequential execution, using functions in the +<em>NNG</em> suite that would otherwise normally wait synchronously for completion.</p> +</div> +<div class="paragraph"> +<p>When the thread is no longer needed, the +<a href="nng_thread_destroy.3supp.html"><code>nng_thread_destroy()</code></a> +function should be used to reap it. +(This function will block waiting for <em>func</em> to return.)</p> +</div> +<div class="admonitionblock important"> +<table> +<tr> +<td class="icon"> +<i class="fa icon-important" title="Important"></i> +</td> +<td class="content"> +Thread objects created by this function may not be real system +level threads capable of performing blocking I/O operations using normal blocking +system calls. +If use of blocking system calls is required (not including APIs provided +by the <em>NNG</em> library itself of course), then real OS-specific threads +should be created instead (such as with <code>pthread_create()</code> or similar +functions.) +</td> +</tr> +</table> +</div> +<div class="admonitionblock important"> +<table> +<tr> +<td class="icon"> +<i class="fa icon-important" title="Important"></i> +</td> +<td class="content"> +Thread objects created by this function cannot be passed +to any system threading functions. +</td> +</tr> +</table> +</div> +<div class="admonitionblock tip"> +<table> +<tr> +<td class="icon"> +<i class="fa icon-tip" title="Tip"></i> +</td> +<td class="content"> +The system may impose limits on the number of threads that can be +created. +Typically applications should not create more than a dozen of these. +If greater concurrency or scalability is needed, consider instead using +an asynchronous model using <a href="nng_aio.5.html"><code>nng_aio</code></a> structures. +</td> +</tr> +</table> +</div> +<div class="admonitionblock tip"> +<table> +<tr> +<td class="icon"> +<i class="fa icon-tip" title="Tip"></i> +</td> +<td class="content"> +Threads can be synchronized using +<a href="nng_mtx_alloc.3supp.html">mutexes</a> and +<a href="nng_cv_alloc.3supp.html">condition variables</a>. +</td> +</tr> +</table> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_return_values">RETURN VALUES</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>This function returns 0 on success, and non-zero otherwise.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_errors">ERRORS</h2> +<div class="sectionbody"> +<div class="hdlist"> +<table> +<tr> +<td class="hdlist1"> +<code>NNG_ENOMEM</code> +</td> +<td class="hdlist2"> +<p>Insufficient free memory exists.</p> +</td> +</tr> +</table> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_see_also">SEE ALSO</h2> +<div class="sectionbody"> +<div class="paragraph text-left"> +<p><a href="nng_strerror.3.html">nng_strerror(3)</a>, +<a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>, +<a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>, +<a href="nng_thread_destroy.3supp.html">nng_thread_destroy(3supp)</a>, +<a href="nng_aio.5.html">nng_aio(5)</a>, +<a href="nng.7.html">nng(7)</a></p> +</div> +</div> +</div> |
