diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-10-24 22:58:47 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-10-24 22:58:47 -0700 |
| commit | 2ac729f333395659c527a21fbcda128b46af7352 (patch) | |
| tree | ac74c91d043cac21e66e856f73dd4bbd52b2eb64 /docs/man | |
| parent | 3b1615c0dea75b082b7d27b73fbce65a836a87e2 (diff) | |
| download | nng-2ac729f333395659c527a21fbcda128b46af7352.tar.gz nng-2ac729f333395659c527a21fbcda128b46af7352.tar.bz2 nng-2ac729f333395659c527a21fbcda128b46af7352.zip | |
docs: AIO chapter (consumer only) converted to mdbook.
Diffstat (limited to 'docs/man')
| -rw-r--r-- | docs/man/nng_aio_alloc.3.adoc | 88 | ||||
| -rw-r--r-- | docs/man/nng_aio_busy.3.adoc | 56 | ||||
| -rw-r--r-- | docs/man/nng_aio_count.3.adoc | 61 | ||||
| -rw-r--r-- | docs/man/nng_aio_free.3.adoc | 54 | ||||
| -rw-r--r-- | docs/man/nng_aio_get_msg.3.adoc | 49 | ||||
| -rw-r--r-- | docs/man/nng_aio_get_output.3.adoc | 56 | ||||
| -rw-r--r-- | docs/man/nng_aio_result.3.adoc | 59 | ||||
| -rw-r--r-- | docs/man/nng_aio_set_input.3.adoc | 63 | ||||
| -rw-r--r-- | docs/man/nng_aio_set_iov.3.adoc | 67 | ||||
| -rw-r--r-- | docs/man/nng_aio_set_msg.3.adoc | 47 | ||||
| -rw-r--r-- | docs/man/nng_aio_set_timeout.3.adoc | 74 | ||||
| -rw-r--r-- | docs/man/nng_aio_wait.3.adoc | 54 |
12 files changed, 0 insertions, 728 deletions
diff --git a/docs/man/nng_aio_alloc.3.adoc b/docs/man/nng_aio_alloc.3.adoc deleted file mode 100644 index 6a424e3b..00000000 --- a/docs/man/nng_aio_alloc.3.adoc +++ /dev/null @@ -1,88 +0,0 @@ -= nng_aio_alloc(3) -// -// Copyright 2022 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_aio_alloc - allocate asynchronous I/O handle - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -int nng_aio_alloc(nng_aio **aiop, void (*callb)(void *), void *arg); ----- - -== DESCRIPTION - -The `nng_aio_alloc()` function allocates a handle for ((asynchronous I/O)) -operations, and stores a pointer to it in __aiop__. -The handle is initialized with a completion ((callback)) of _callb_, -which will be executed when an associated asynchronous operation finishes. -It will be called with the argument _arg_. - -NOTE: The callback _callb_ must not perform any blocking operations, and -must complete its execution quickly. If _callb_ does block, this can -lead ultimately to an apparent "hang" or deadlock in the application. -This also means you should avoid operations such as allocating new objects, -which also means opening or closing sockets, dialers, and so forth. - -TIP: If more complex or blocking work needs to be performed by _callb_, a separate -thread can be used, along with a xref:nng_cv_alloc.3supp.adoc[condition variable] -which can be signaled by the callback. - -Asynchronous I/O operations all take an xref:nng_aio.5.adoc[`nng_aio`] -handle such as allocated by this function. -Such operations are usually started by a function that returns immediately. -The operation is then run asynchronously, and completes sometime later. -When that operation is complete, the callback supplied here is called, -and that callback is able to determine the result of the operation using -xref:nng_aio_result.3.adoc[`nng_aio_result()`], -xref:nng_aio_count.3.adoc[`nng_aio_count()`], -and xref:nng_aio_get_output.3.adoc[`nng_aio_get_output()`]. - -It is possible to wait synchronously for an otherwise asynchronous operation -by using the function xref:nng_aio_wait.3.adoc[`nng_aio_wait()`]. -In that case, it is permissible for _callb_ and _arg_ to both be `NULL`. -Note that if these are `NULL`, then it will not be possible to determine when the -operation is complete except by calling the aforementioned -xref:nng_aio_wait.3.adoc[`nng_aio_wait()`]. - -== RETURN VALUES - -This function returns 0 on success, and non-zero otherwise. - -== ERRORS - -[horizontal] -`NNG_ENOMEM`:: Insufficient free memory to perform the operation. - -== SEE ALSO - -[.text-left] -xref:nng_aio_abort.3.adoc[nng_aio_abort(3)], -xref:nng_aio_cancel.3.adoc[nng_aio_cancel(3)], -xref:nng_aio_count.3.adoc[nng_aio_count(3)], -xref:nng_aio_free.3.adoc[nng_aio_free(3)], -xref:nng_aio_get_input.3.adoc[nng_aio_get_input(3)], -xref:nng_aio_get_msg.3.adoc[nng_aio_get_msg(3)], -xref:nng_aio_get_output.3.adoc[nng_aio_get_output(3)], -xref:nng_aio_result.3.adoc[nng_aio_result(3)], -xref:nng_aio_set_input.3.adoc[nng_aio_set_input(3)], -xref:nng_aio_set_iov.3.adoc[nng_aio_set_iov(3)], -xref:nng_aio_set_msg.3.adoc[nng_aio_set_msg(3)], -xref:nng_aio_set_timeout.3.adoc[nng_aio_set_timeout(3)], -xref:nng_aio_stop.3.adoc[nng_aio_stop(3)], -xref:nng_aio_wait.3.adoc[nng_aio_wait(3)], -xref:nng_strerror.3.adoc[nng_strerror(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_busy.3.adoc b/docs/man/nng_aio_busy.3.adoc deleted file mode 100644 index 4aaf09b5..00000000 --- a/docs/man/nng_aio_busy.3.adoc +++ /dev/null @@ -1,56 +0,0 @@ -= nng_aio_busy(3) -// -// Copyright 2022 Staysail Systems, Inc. <info@staysail.tech> -// -// 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_aio_busy - test if asynchronous I/O is busy - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -bool nng_aio_busy(nng_aio *aio); ----- - -== DESCRIPTION - -The `nng_aio_busy()` function returns true if the -_aio_ is currently busy performing an asynchronous I/O -operation or is executing a completion callback. - -If no operation has been started, or the operation has -been completed or canceled, and any callback has been -executed, then it returns false. - -This is the same test used internally by -xref:nng_aio_wait.3.adoc[`nng_aio_wait()`] - -NOTE: Care should be taken to ensure that the _aio_ object is not -freed when using this function. The caller is responsible for -coordinating any use of this with any reuse of the _aio_. - -== RETURN VALUES - -True if the _aio_ is busy, false otherwise. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_abort.3.adoc[nng_aio_abort(3)], -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_wait.3.adoc[nng_aio_wait(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_count.3.adoc b/docs/man/nng_aio_count.3.adoc deleted file mode 100644 index daf97710..00000000 --- a/docs/man/nng_aio_count.3.adoc +++ /dev/null @@ -1,61 +0,0 @@ -= nng_aio_count(3) -// -// Copyright 2018 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_aio_count - return number of bytes transferred - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -size_t nng_aio_count(nng_aio *aio); ----- - -== DESCRIPTION - -The `nng_aio_count()` returns the number of bytes transferred by the -asynchronous operation associated with the handle _aio_. - -Some asynchronous operations do not provide meaningful data for this -function; for example operations that establish connections do not -transfer user data (they may transfer protocol data though) -- in this case -this function will generally return zero. - -This function is most useful when used with operations that make use of -of a scatter/gather vector (set by xref:nng_aio_set_iov.3.adoc[`nng_aio_set_iov()`]). - -NOTE: The return value from this function is undefined if the operation -has not completed yet. -Either call this from the handle's completion callback, -or after waiting for the operation to complete with -xref:nng_aio_wait.3.adoc[`nng_aio_wait()`]. - -== RETURN VALUES - -The number of bytes transferred by the operation. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_result.3.adoc[nng_aio_result(3)], -xref:nng_aio_set_iov.3.adoc[nng_aio_set_iov(3)], -xref:nng_aio_wait.3.adoc[nng_aio_wait(3)], -xref:nng_strerror.3.adoc[nng_strerror(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_free.3.adoc b/docs/man/nng_aio_free.3.adoc deleted file mode 100644 index c2528633..00000000 --- a/docs/man/nng_aio_free.3.adoc +++ /dev/null @@ -1,54 +0,0 @@ -= nng_aio_free(3) -// -// Copyright 2020 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_aio_free - free asynchronous I/O handle - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -void nng_aio_free(nng_aio *aio); -void nng_aio_reap(nng_aio *aio); ----- - -== DESCRIPTION - -The `nng_aio_free()` function frees an allocated asynchronous I/O handle. -If any operation is in progress, the operation is canceled, and the -caller is blocked until the operation is completely canceled, to ensure -that it is safe to deallocate the handle and any associated resources. -(This is done by implicitly calling xref:nng_aio_stop.3.adoc[`nng_aio_stop()`].) - -The `nng_aio_reap()` function is the same as `nng_aio_free()`, but does -its work in a background thread. -This can be useful to discard the _aio_ object from within the callback for the _aio_. - -IMPORTANT: Once either of these functions are called, the _aio_ object is invalid and must not be used again. - -== RETURN VALUES - -None. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_stop.3.adoc[nng_aio_stop(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_get_msg.3.adoc b/docs/man/nng_aio_get_msg.3.adoc deleted file mode 100644 index c4205658..00000000 --- a/docs/man/nng_aio_get_msg.3.adoc +++ /dev/null @@ -1,49 +0,0 @@ -= nng_aio_get_msg(3) -// -// Copyright 2018 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_aio_get_msg - get message from asynchronous receive - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -nng_msg *nng_aio_get_msg(nng_aio *aio); ----- - -== DESCRIPTION - -The `nng_aio_get_msg()` function gets any message stored in _aio_ as -either a result of a successful receive -(see xref:nng_recv_aio.3.adoc[`nng_recv_aio()`]) -or that was previously stored with xref:nng_aio_set_msg.3.adoc[`nng_aio_set_msg()`]. - -IMPORTANT: The xref:nng_aio.5.adoc[`nng_aio`] must not have an operation in progress. - -== RETURN VALUES - -None. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_set_msg.3.adoc[nng_aio_set_msg(3)], -xref:nng_recv_aio.3.adoc[nng_recv_aio(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng_msg.5.adoc[nng_msg(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_get_output.3.adoc b/docs/man/nng_aio_get_output.3.adoc deleted file mode 100644 index 4dfd67c3..00000000 --- a/docs/man/nng_aio_get_output.3.adoc +++ /dev/null @@ -1,56 +0,0 @@ -= nng_aio_get_output(3) -// -// Copyright 2018 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_aio_get_output - return output result - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -void *nng_aio_get_output(nng_aio *aio, unsigned int index); ----- - -== DESCRIPTION - -The `nng_aio_get_output()` function returns the output result at _index_ -resulting from the asynchronous operation associated with _aio_. - -The type and semantics of output parameters are determined by specific -operations. - -NOTE: If the _index_ does not correspond to a defined output for the operation, -or the operation did not succeed, then the return value will be `NULL`. - -IMPORTANT: It is an error to call this function while the _aio_ is currently -in use by an active asynchronous operation, or if no operation has been -performed using the _aio_ yet. - -== RETURN VALUES - -The __index__th result of the operation, or `NULL`. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_get_output.3.adoc[nng_aio_get_output(3)], -xref:nng_aio_set_input.3.adoc[nng_aio_set_input(3)], -xref:nng_aio_result.3.adoc[nng_aio_result(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_result.3.adoc b/docs/man/nng_aio_result.3.adoc deleted file mode 100644 index e1886a6e..00000000 --- a/docs/man/nng_aio_result.3.adoc +++ /dev/null @@ -1,59 +0,0 @@ -= nng_aio_result(3) -// -// Copyright 2018 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_aio_result - return result of asynchronous operation - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -int nng_aio_result(nng_aio *aio); ----- - -== DESCRIPTION - -The `nng_aio_result()` returns the result of the operation associated -with the handle _aio_. -If the operation was successful, then 0 is returned. -Otherwise a non-zero error code is returned. - -NOTE: The return value from this function is undefined if the operation -has not completed yet. -Either call this from the handle's completion -callback, or after waiting for the operation to complete with -xref:nng_aio_wait.3.adoc[`nng_aio_wait()`]. - -== RETURN VALUES - -The result of the operation, either zero on success, or an error -number on failure. - -== ERRORS - -[horizontal] -`NNG_ETIMEDOUT`:: The operation timed out. -`NNG_ECANCELED`:: The operation was canceled. - -Various other return values are possible depending on the operation. - -== SEE ALSO - -[.text-left] -xref:nng_aio_abort.3.adoc[nng_aio_abort(3)], -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_wait.3.adoc[nng_aio_wait(3)], -xref:nng_strerror.3.adoc[nng_strerror(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_set_input.3.adoc b/docs/man/nng_aio_set_input.3.adoc deleted file mode 100644 index 37cf3cdd..00000000 --- a/docs/man/nng_aio_set_input.3.adoc +++ /dev/null @@ -1,63 +0,0 @@ -= nng_aio_set_input(3) -// -// Copyright 2018 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_aio_set_input - set input parameter - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -void nng_aio_set_input(nng_aio *aio, unsigned int index, void *param); ----- - -== DESCRIPTION - -The `nng_aio_set_input()` function sets the input parameter at _index_ -to _param_ for the asynchronous operation associated with _aio_. - -The type and semantics of input parameters are determined by specific -operations; the caller must supply appropriate inputs for the operation -to be performed. - -The valid values of _index_ range from zero (0) to three (3), as no operation -currently defined can accept more than four parameters. -(This limit could increase in the future.) - -NOTE: If the _index_ does not correspond to a defined input for the operation, -then this function will have no effect. - -IMPORTANT: It is an error to call this function while the _aio_ is currently -in use by an active asynchronous operation. - -An input parameter set with this function may be retrieved later with -the xref:nng_aio_get_input.3.adoc[`nng_aio_get_input()`] function. - -== RETURN VALUES - -None. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_get_input.3.adoc[nng_aio_get_input(3)], -xref:nng_aio_get_output.3.adoc[nng_aio_get_output(3)], -xref:nng_aio_result.3.adoc[nng_aio_result(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_set_iov.3.adoc b/docs/man/nng_aio_set_iov.3.adoc deleted file mode 100644 index 83128011..00000000 --- a/docs/man/nng_aio_set_iov.3.adoc +++ /dev/null @@ -1,67 +0,0 @@ -= nng_aio_set_iov(3) -// -// Copyright 2021 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_aio_set_iov - set scatter/gather vector - -== SYNOPSIS - -[source,c] ----- -#include <nng/nng.h> - -int nng_aio_set_iov(nng_aio *aio, unsigned int niov, nng_iov *iov); ----- - -== DESCRIPTION - -The `nng_aio_set_iov()` function sets a ((scatter/gather)) vector _iov_ on the handle _aio_. - -The _iov_ is a pointer to an array of _niov_ xref:nng_iov.5.adoc[`nng_iov`] -structures, which have the following definition: - -[source,c] ----- - typedef struct nng_iov { - void * iov_buf; - size_t iov_len; - }; ----- - -The _iov_ is copied into storage in the _aio_ itself, so that callers may use stack allocated `nng_iov` structures. -The values pointed to by the `iov_buf` members are *not* copied by this function though. - -A maximum of four (4) `nng_iov` members may be supplied. - -NOTE: Earlier versions of the library could accept longer scatter-gather lists. -However, no known consumers have ever needed a scatter-gather list longer than 4 vectors. -As a result, the implementation limit was reduced, and heap allocations which could fail were removed. - -== RETURN VALUES - -This function returns 0 on success, and non-zero otherwise. - -== ERRORS - -[horizontal] -`NNG_EINVAL`:: Value of specified _niov_ is too large. - -== SEE ALSO - -[.text-left] -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_cancel.3.adoc[nng_aio_cancel(3)], -xref:nng_aio_count.3.adoc[nng_aio_count(3)], -xref:nng_aio_result.3.adoc[nng_aio_result(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng_iov.5.adoc[nng_iov(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_set_msg.3.adoc b/docs/man/nng_aio_set_msg.3.adoc deleted file mode 100644 index e0ea3e46..00000000 --- a/docs/man/nng_aio_set_msg.3.adoc +++ /dev/null @@ -1,47 +0,0 @@ -= nng_aio_set_msg(3) -// -// Copyright 2018 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_aio_set_msg - set message for asynchronous send - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -void nng_aio_set_msg(nng_aio *aio, nng_msg *msg); ----- - -== DESCRIPTION - -The `nng_aio_set_msg()` function sets the message that will be used -for an asynchronous send operation (see xref:nng_send_aio.3.adoc[`nng_send_aio()`]). - -IMPORTANT: The xref:nng_aio.5.adoc[`nng_aio`] must not have an operation in progress. - -== RETURN VALUES - -None. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_get_msg.3.adoc[nng_aio_get_msg(3)], -xref:nng_send_aio.3.adoc[nng_send_aio(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng_msg.5.adoc[nng_msg(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_set_timeout.3.adoc b/docs/man/nng_aio_set_timeout.3.adoc deleted file mode 100644 index a82b0c83..00000000 --- a/docs/man/nng_aio_set_timeout.3.adoc +++ /dev/null @@ -1,74 +0,0 @@ -= nng_aio_set_timeout(3) -// -// Copyright 2023 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_aio_set_timeout - set asynchronous I/O timeout - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -typedef int nng_duration; -void nng_aio_set_timeout(nng_aio *aio, nng_duration timeout); - -typedef uint64_t nng_time; -void nng_aio_set_expire(nng_aio *aio, nng_time expiration); ----- - -== DESCRIPTION - -The `nng_aio_set_timeout()` function sets a _timeout_(((timeout))) -for the asynchronous operation associated with _aio_. -This causes a timer to be started when the operation is actually started. -If the timer expires before the operation is completed, then it is -aborted with an error of `NNG_ETIMEDOUT`. -The _timeout_ is specified as a relative number of milliseconds. - -If the timeout is `NNG_DURATION_INFINITE`, then no timeout is used. -If the timeout is `NNG_DURATION_DEFAULT`, then a "default" or socket-specific -timeout is used. -(This is frequently the same as `NNG_DURATION_INFINITE`.) - -The `nng_aio_set_expire()` function is similar to `nng_aio_set_timeout()`, but sets -an absolute expiration time based on the system clock. The _expiration_ -is expressed as a number of milliseconds since some point in the past. -The xref:nng_clock.3supp.adoc[`nng_clock()`] function can be used to determine -the current value of the clock. - -TIP: As most operations involve some context switching, it is usually a good -idea to allow at least a few tens of milliseconds before timing them out -- -a too small timeout might not allow the operation to properly begin before -giving up! - -The value of _timeout_ set for the _aio_ is persistent, so that if the -handle is reused for multiple operations, they will have the same relative -timeout. - -== RETURN VALUES - -None. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_cancel.3.adoc[nng_aio_cancel(3)], -xref:nng_aio_result.3.adoc[nng_aio_result(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng_duration.5.adoc[nng_duration(5)], -xref:nng.7.adoc[nng(7)] diff --git a/docs/man/nng_aio_wait.3.adoc b/docs/man/nng_aio_wait.3.adoc deleted file mode 100644 index acac6fdf..00000000 --- a/docs/man/nng_aio_wait.3.adoc +++ /dev/null @@ -1,54 +0,0 @@ -= nng_aio_wait(3) -// -// Copyright 2023 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_aio_wait - wait for asynchronous I/O operation - -== SYNOPSIS - -[source, c] ----- -#include <nng/nng.h> - -void nng_aio_wait(nng_aio *aio); ----- - -== DESCRIPTION - -The `nng_aio_wait()` function waits for an asynchronous I/O operation -to complete. -If the operation has not been started, or has already -completed, then it returns immediately. - -If a callback was set with _aio_ when it was allocated, then this -function will not be called until the callback has completed. - -IMPORTANT: This function should never be called from a function that itself -is a callback of an xref:nng_aio.5.adoc[`aio`], either this one or any other. -Doing so may result in a deadlock. - -== RETURN VALUES - -None. - -== ERRORS - -None. - -== SEE ALSO - -[.text-left] -xref:nng_aio_abort.3.adoc[nng_aio_abort(3)], -xref:nng_aio_alloc.3.adoc[nng_aio_alloc(3)], -xref:nng_aio_busy.3.adoc[nng_aio_busy(3)], -xref:nng_aio.5.adoc[nng_aio(5)], -xref:nng.7.adoc[nng(7)] |
