summaryrefslogtreecommitdiff
path: root/man/v1.7.3/nng_thread_create.3supp.html
diff options
context:
space:
mode:
authorStaysail Systems, Inc <info@staysail.tech>2024-03-01 07:04:14 -0800
committerGarrett D'Amore <garrett@damore.org>2024-03-01 07:07:37 -0800
commite4e646a6a9982ff932d83633157106a0b34975a2 (patch)
tree9ee71c33531a9592ba0c66ad97ceb10c42168519 /man/v1.7.3/nng_thread_create.3supp.html
parent66e28ffa9fe663908539550bf104716c5b4dc213 (diff)
downloadnng-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.html156
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">&lt;nng/nng.h&gt;</span>
+<span class="tok-cp">#include</span><span class="tok-w"> </span><span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</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>