aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/man/libnng.3.adoc34
-rw-r--r--docs/man/nng_sleep_aio.3.adoc53
-rw-r--r--docs/ref/api/time.md26
-rw-r--r--docs/ref/xref.md6
4 files changed, 42 insertions, 77 deletions
diff --git a/docs/man/libnng.3.adoc b/docs/man/libnng.3.adoc
index 0df0990d..c26913be 100644
--- a/docs/man/libnng.3.adoc
+++ b/docs/man/libnng.3.adoc
@@ -158,30 +158,30 @@ Only a single asynchronous operation may be associated with an
The following functions are used in the asynchronous model:
|===
-|xref:nng_aio_abort.3.adoc[nng_aio_abort()]|abort asynchronous I/O operation
-|xref:nng_aio_alloc.3.adoc[nng_aio_alloc()]|allocate asynchronous I/O handle
+// |xref:nng_aio_abort.3.adoc[nng_aio_abort()]|abort asynchronous I/O operation
+// |xref:nng_aio_alloc.3.adoc[nng_aio_alloc()]|allocate asynchronous I/O handle
|xref:nng_aio_begin.3.adoc[nng_aio_begin()]|begin asynchronous I/O operation
-|xref:nng_aio_busy.3.adoc[nng_aio_busy()]|test if asynchronous I/O is busy
-|xref:nng_aio_cancel.3.adoc[nng_aio_cancel()]|cancel asynchronous I/O operation
-|xref:nng_aio_count.3.adoc[nng_aio_count()]|return number of bytes transferred
+// |xref:nng_aio_busy.3.adoc[nng_aio_busy()]|test if asynchronous I/O is busy
+// |xref:nng_aio_cancel.3.adoc[nng_aio_cancel()]|cancel asynchronous I/O operation
+// |xref:nng_aio_count.3.adoc[nng_aio_count()]|return number of bytes transferred
|xref:nng_aio_defer.3.adoc[nng_aio_defer()]|defer asynchronous I/O operation
|xref:nng_aio_finish.3.adoc[nng_aio_finish()]|finish asynchronous I/O operation
-|xref:nng_aio_free.3.adoc[nng_aio_free()]|free asynchronous I/O handle
+// |xref:nng_aio_free.3.adoc[nng_aio_free()]|free asynchronous I/O handle
|xref:nng_aio_get_input.3.adoc[nng_aio_get_input()]|return input parameter
-|xref:nng_aio_get_msg.3.adoc[nng_aio_get_msg()]|get message from an asynchronous receive
-|xref:nng_aio_get_output.3.adoc[nng_aio_get_output()]|return output result
-|xref:nng_aio_free.3.adoc[nng_aio_reap()]|reap asynchronous I/O handle
-|xref:nng_aio_result.3.adoc[nng_aio_result()]|return result of asynchronous operation
-|xref:nng_aio_set_input.3.adoc[nng_aio_set_input()]|set input parameter
-|xref:nng_aio_set_iov.3.adoc[nng_aio_set_iov()]|set scatter/gather vector
-|xref:nng_aio_set_msg.3.adoc[nng_aio_set_msg()]|set message for an asynchronous send
+// |xref:nng_aio_get_msg.3.adoc[nng_aio_get_msg()]|get message from an asynchronous receive
+// |xref:nng_aio_get_output.3.adoc[nng_aio_get_output()]|return output result
+// |xref:nng_aio_free.3.adoc[nng_aio_reap()]|reap asynchronous I/O handle
+// |xref:nng_aio_result.3.adoc[nng_aio_result()]|return result of asynchronous operation
+// |xref:nng_aio_set_input.3.adoc[nng_aio_set_input()]|set input parameter
+// |xref:nng_aio_set_iov.3.adoc[nng_aio_set_iov()]|set scatter/gather vector
+// |xref:nng_aio_set_msg.3.adoc[nng_aio_set_msg()]|set message for an asynchronous send
|xref:nng_aio_set_output.3.adoc[nng_aio_set_output()]|set output result
-|xref:nng_aio_set_timeout.3.adoc[nng_aio_set_timeout()]|set asynchronous I/O timeout
-|xref:nng_aio_stop.3.adoc[nng_aio_stop()]|stop asynchronous I/O operation
-|xref:nng_aio_wait.3.adoc[nng_aio_wait()]|wait for asynchronous I/O operation
+// |xref:nng_aio_set_timeout.3.adoc[nng_aio_set_timeout()]|set asynchronous I/O timeout
+// |xref:nng_aio_stop.3.adoc[nng_aio_stop()]|stop asynchronous I/O operation
+// |xref:nng_aio_wait.3.adoc[nng_aio_wait()]|wait for asynchronous I/O operation
|xref:nng_recv_aio.3.adoc[nng_recv_aio()]|receive message asynchronously
|xref:nng_send_aio.3.adoc[nng_send_aio()]|send message asynchronously
-|xref:nng_sleep_aio.3.adoc[nng_sleep_aio()]|sleep asynchronously
+// |xref:nng_sleep_aio.3.adoc[nng_sleep_aio()]|sleep asynchronously
|===
=== Protocols
diff --git a/docs/man/nng_sleep_aio.3.adoc b/docs/man/nng_sleep_aio.3.adoc
deleted file mode 100644
index 2a3cf4f2..00000000
--- a/docs/man/nng_sleep_aio.3.adoc
+++ /dev/null
@@ -1,53 +0,0 @@
-= nng_sleep_aio(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_sleep_aio - sleep asynchronously
-
-== SYNOPSIS
-
-[source, c]
-----
-#include <nng/nng.h>
-
-void nng_sleep_aio(nng_duration msec, nng_aio *aio);
-----
-
-== DESCRIPTION
-
-The `nng_sleep_aio()` function provides an asynchronous delay mechanism,
-causing the callback for _aio_ to be executed after _msec_ milliseconds.
-If the sleep finishes completely, the result will always be zero.
-
-NOTE: If a timeout is set on _aio_ using
-xref:nng_aio_set_timeout.3.adoc[`nng_aio_set_timeout()`], and it is shorter
-than _msec_,
-then the sleep will wake up early, with a result code of `NNG_ETIMEDOUT`.
-
-== 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_set_timeout.3.adoc[nng_aio_set_timeout(3)],
-xref:nng_strerror.3.adoc[nng_strerror(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/ref/api/time.md b/docs/ref/api/time.md
index 64d4039f..2855bca9 100644
--- a/docs/ref/api/time.md
+++ b/docs/ref/api/time.md
@@ -43,7 +43,7 @@ Normally durations are positive, but some specific negative values are reserved.
- {{i:`NNG_DURATION_ZERO`}}: A zero length duration is used to performan an immediate
poll.
-## Getting the Current Time
+## Get the Current Time
```c
nng_time nng_clock(void);
@@ -55,7 +55,7 @@ The resolution of the clock depends on the underlying timing facilities of the s
This function may be used for timing, but applications should not expect
very fine-grained values.
-## Waiting for Duration
+## Wait for Duration
```c
void nng_msleep(nng_duration msec);
@@ -69,9 +69,27 @@ number of milliseconds.
> The actual wait time is determined by the capabilities of the
> underlying system.
+## Wait Asynchronously
+
+```c
+void nng_sleep_aio(nng_duration msec, nng_aio *aio);
+```
+
+It is possible to wait as the action on an [`nng_aio`], which in effect
+acts like {{i:scheduling}} a callback to run after a specified period of time.
+
+The {{i:`nng_sleep_aio`}} function provides this capability.
+After _msec_ milliseconds have passed, then _aio_'s callback will be executed.
+If this sleep waits without interruption, and then completes, the result from
+[`nng_aio_result`] will be zero.
+
+> [!NOTE]
+> If a timeout shorter than _msec_ is set on _aio_ using [`nng_aio_set_timeout`],
+> then the sleep will wake up early, with a result code of [`NNG_ETIMEDOUT`].
+
## See Also
-[`nng_cv_until`],
-[`nng_sleep_aio`]
+[Asynchronous Operations][aio],
+[Synchronization][synchronization]
{{#include ../xref.md}}
diff --git a/docs/ref/xref.md b/docs/ref/xref.md
index 3abf999c..452ad25d 100644
--- a/docs/ref/xref.md
+++ b/docs/ref/xref.md
@@ -6,8 +6,8 @@
[`nng_strfree`]: /api/memory.md#free-string
[`nng_time`]: /api/time.md#time-type
[`nng_duration`]: /api/time.md#duration-type
-[`nng_clock`]: /api/time.md#getting-the-current-time
-[`nng_msleep`]: /api/time.md#waiting-for-duration
+[`nng_clock`]: /api/time.md#get-the-current-time
+[`nng_msleep`]: /api/time.md#wait-for-duration
[`nng_msg`]: /api/msg.md#message-structure
[`nng_msg_alloc`]: /api/msg.md#create-a-message
[`nng_msg_free`]: /api/msg.md#destroy-a-message
@@ -58,7 +58,7 @@
[`nng_aio`]: /TODO.md
[`nng_aio_alloc`]: /api/aio.md#create-handle
[`nng_aio_free`]: /api/aio.md#destroy-handle
-[`nng_sleep_aio`]: /TODO.md
+[`nng_sleep_aio`]: /api/time.md@wait-asynchronously
[`nng_aio`]: /api/aio.md#asynchronous-i-o-handle
[`nng_aio_cancel`]: /api/aio.md#cancellation
[`nng_aio_abort`]: /api/aio.md#cancellation