cwist
Modern C web framework with libttak runtime
Loading...
Searching...
No Matches
writer_fast.h
Go to the documentation of this file.
1
6#ifndef CWIST_NET_HTTP_WRITER_FAST_H
7#define CWIST_NET_HTTP_WRITER_FAST_H
8
9#include <stddef.h>
10#include <stdint.h>
11#include <stdbool.h>
12#include <sys/types.h>
13#include <cwist/sys/platform.h>
14#ifndef CWIST_BAREMETAL
15#include <sys/uio.h>
16#else
17struct iovec;
18#endif
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
31
45cwist_write_status_t cwist_http_send_speculative(int fd, const void *buf, size_t len,
46 size_t *sent_out);
47
54cwist_write_status_t cwist_http_sendmsg_speculative(int fd, struct iovec *iov, int iovcnt,
55 int flags, size_t *total_sent);
56
67uint32_t cwist_sched_p2c_select_worker(const _Atomic uint32_t *worker_loads, uint32_t num_workers);
68
75uint32_t cwist_fast_monotonic_sec(void);
76
77#ifdef __cplusplus
78}
79#endif
80
81#endif /* CWIST_NET_HTTP_WRITER_FAST_H */
Target capability macros shared by all CWIST sources.
cwist_write_status_t cwist_http_send_speculative(int fd, const void *buf, size_t len, size_t *sent_out)
Speculative non-blocking direct sender.
Definition writer_fast.c:31
cwist_write_status_t
Definition writer_fast.h:24
@ CWIST_WRITE_DONE
Definition writer_fast.h:25
@ CWIST_WRITE_PENDING
Definition writer_fast.h:27
@ CWIST_WRITE_ERR
Definition writer_fast.h:29
cwist_write_status_t cwist_http_sendmsg_speculative(int fd, struct iovec *iov, int iovcnt, int flags, size_t *total_sent)
Speculative scatter/gather sendmsg without blocking poll().
Definition writer_fast.c:83
uint32_t cwist_sched_p2c_select_worker(const _Atomic uint32_t *worker_loads, uint32_t num_workers)
Select worker using Power of Two Random Choices (P2C).
uint32_t cwist_fast_monotonic_sec(void)
Fast monotonic clock in seconds (vDSO coarse where available).