MCPcopy Create free account
hub / github.com/AcademySoftwareFoundation/xstudio / select_write

Function select_write

extern/include/cpp-httplib/httplib.h:2350–2376  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2348}
2349
2350inline ssize_t select_write(socket_t sock, time_t sec, time_t usec) {
2351#ifdef CPPHTTPLIB_USE_POLL
2352 struct pollfd pfd_read;
2353 pfd_read.fd = sock;
2354 pfd_read.events = POLLOUT;
2355
2356 auto timeout = static_cast<int>(sec * 1000 + usec / 1000);
2357
2358 return handle_EINTR([&]() { return poll(&pfd_read, 1, timeout); });
2359#else
2360#ifndef _WIN32
2361 if (sock >= FD_SETSIZE) { return 1; }
2362#endif
2363
2364 fd_set fds;
2365 FD_ZERO(&fds);
2366 FD_SET(sock, &fds);
2367
2368 timeval tv;
2369 tv.tv_sec = static_cast<long>(sec);
2370 tv.tv_usec = static_cast<decltype(tv.tv_usec)>(usec);
2371
2372 return handle_EINTR([&]() {
2373 return select(static_cast<int>(sock + 1), nullptr, &fds, nullptr, &tv);
2374 });
2375#endif
2376}
2377
2378inline Error wait_until_socket_is_ready(socket_t sock, time_t sec,
2379 time_t usec) {

Callers 2

is_writableMethod · 0.85

Calls 2

handle_EINTRFunction · 0.85
pollFunction · 0.85

Tested by

no test coverage detected