diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-10-11 23:02:16 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-10-11 23:03:34 -0700 |
| commit | 1e4b07d1907a03ac3abbf9297ba18d8526c91e94 (patch) | |
| tree | 8316efcd5225ddd4682146e5ed383fb703c815ef /docs/man/nng_thread_create.3supp.adoc | |
| parent | 08bfec878de6d686f586f85c9da71b7f1804ad85 (diff) | |
| download | nng-1e4b07d1907a03ac3abbf9297ba18d8526c91e94.tar.gz nng-1e4b07d1907a03ac3abbf9297ba18d8526c91e94.tar.bz2 nng-1e4b07d1907a03ac3abbf9297ba18d8526c91e94.zip | |
Convert thread documentation to mdbook. Also conslidate this man page.
Diffstat (limited to 'docs/man/nng_thread_create.3supp.adoc')
| -rw-r--r-- | docs/man/nng_thread_create.3supp.adoc | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/docs/man/nng_thread_create.3supp.adoc b/docs/man/nng_thread_create.3supp.adoc deleted file mode 100644 index 10b02e22..00000000 --- a/docs/man/nng_thread_create.3supp.adoc +++ /dev/null @@ -1,86 +0,0 @@ -= nng_thread_create(3supp) -// -// Copyright 2024 Staysail Systems, Inc. <info@staysail.tech> -// Copyright 2018 Capitar IT Group BV <info@capitar.com> -// -// This document is supplied under the terms of the MIT License, a -// copy of which should be located in the distribution where this -// file was obtained (LICENSE.txt). A copy of the license may also be -// found online at https://opensource.org/licenses/MIT. -// - -== NAME - -nng_thread_create - create thread - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -typedef struct nng_thread nng_thread; - -int nng_thread_create(nng_thread **thrp, void (*func)(void *), void *arg); ----- - -== DESCRIPTION - -The `nng_thread_create()` function creates a single thread of execution, -running _func_ with the argument _arg_. -The thread is started immediately. -A pointer to the thread object is returned in _thrp_. - -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 _NNG_ is running on. -This may include use of coroutines. - -Using threads created by this function can make it easy to write -programs that use simple sequential execution, using functions in the -_NNG_ suite that would otherwise normally wait synchronously for completion. - -When the thread is no longer needed, the -xref:nng_thread_destroy.3supp.adoc[`nng_thread_destroy()`] -function should be used to reap it. -(This function will block waiting for _func_ to return.) - -IMPORTANT: 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 _NNG_ library itself of course), then real OS-specific threads -should be created instead (such as with `pthread_create()` or similar -functions.) - -IMPORTANT: Thread objects created by this function cannot be passed -to any system threading functions. - -TIP: 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 xref:nng_aio.5.adoc[`nng_aio`] structures. - -TIP: Threads can be synchronized using -xref:nng_mtx_alloc.3supp.adoc[mutexes] and -xref:nng_cv_alloc.3supp.adoc[condition variables]. - -== RETURN VALUES - -This function returns 0 on success, and non-zero otherwise. - -== ERRORS - -[horizontal] -`NNG_ENOMEM`:: Insufficient free memory exists. - -== SEE ALSO - -[.text-left] -xref:nng_strerror.3.adoc[nng_strerror(3)], -xref:nng_cv_alloc.3supp.adoc[nng_cv_alloc(3supp)], -xref:nng_mtx_alloc.3supp.adoc[nng_mtx_alloc(3supp)], -xref:nng_thread_destroy.3supp.adoc[nng_thread_destroy(3supp)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] |
