aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/include
diff options
context:
space:
mode:
authorCalvin Rose <calsrose@gmail.com>2024-04-26 19:28:20 -0500
committerCalvin Rose <calsrose@gmail.com>2024-04-26 19:28:20 -0500
commitf0f1b7ce9e232b017c55946203a6f1299cd584d7 (patch)
tree5f5b0bd1106d721035c4e4452b6c34ba47340dae /src/include
parentRemove unneeded `string` functions. (diff)
Address #1431 - level-trigger mode for net/accept-loop
In the edge-trigger mode before this change, if a socket receives 2 connections before one can be handled, then only a single connection is handle and 1 connection will never be handled in some cases. Reverting to level-trigger mode makes this impossible.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/janet.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/include/janet.h b/src/include/janet.h
index 1cfb970f..195c1c47 100644
--- a/src/include/janet.h
+++ b/src/include/janet.h
@@ -636,6 +636,12 @@ JANET_API void janet_async_end(JanetFiber *fiber);
/* Needed for windows to mark a fiber as waiting for an IOCP completion event. Noop on other platforms. */
JANET_API void janet_async_in_flight(JanetFiber *fiber);
+/* On some platforms, it is important to be able to control if a stream is edge-trigger or level triggered.
+ * For example, a server that is accepting connections might want to be level triggered or edge-triggered
+ * depending on expected service. */
+JANET_API void janet_stream_edge_triggered(JanetStream *stream);
+JANET_API void janet_stream_level_triggered(JanetStream *stream);
+
#endif
/* Janet uses atomic integers in several places for synchronization between threads and