Current Path: > > opt > alt > ruby33 > include > ruby > internal > intern
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
select | Directory | - | - | |
array.h | File | 25755 bytes | April 24 2025 07:57:42. | |
bignum.h | File | 30764 bytes | April 24 2025 07:57:42. | |
class.h | File | 16051 bytes | April 24 2025 07:57:42. | |
compar.h | File | 2573 bytes | April 24 2025 07:57:42. | |
complex.h | File | 8406 bytes | April 24 2025 07:57:42. | |
cont.h | File | 11701 bytes | April 24 2025 07:57:42. | |
dir.h | File | 1942 bytes | April 24 2025 07:57:42. | |
enum.h | File | 2891 bytes | April 24 2025 07:57:42. | |
enumerator.h | File | 12422 bytes | April 24 2025 07:57:42. | |
error.h | File | 9821 bytes | April 24 2025 07:57:42. | |
eval.h | File | 8696 bytes | April 24 2025 07:57:42. | |
file.h | File | 9598 bytes | April 24 2025 07:57:42. | |
hash.h | File | 11896 bytes | April 24 2025 07:57:42. | |
io.h | File | 26868 bytes | April 24 2025 07:57:42. | |
load.h | File | 10670 bytes | April 24 2025 07:57:42. | |
marshal.h | File | 5578 bytes | April 24 2025 07:57:42. | |
numeric.h | File | 7672 bytes | April 24 2025 07:57:42. | |
object.h | File | 19585 bytes | April 24 2025 07:57:42. | |
parse.h | File | 6326 bytes | April 24 2025 07:57:42. | |
proc.h | File | 13860 bytes | April 24 2025 07:57:42. | |
process.h | File | 11569 bytes | April 24 2025 07:57:42. | |
random.h | File | 4400 bytes | April 24 2025 07:57:42. | |
range.h | File | 4071 bytes | April 24 2025 07:57:42. | |
rational.h | File | 6491 bytes | April 24 2025 07:57:42. | |
re.h | File | 8728 bytes | April 24 2025 07:57:42. | |
ruby.h | File | 2848 bytes | April 24 2025 07:57:42. | |
select.h | File | 3946 bytes | April 24 2025 07:57:42. | |
signal.h | File | 6547 bytes | April 24 2025 07:57:42. | |
sprintf.h | File | 6468 bytes | April 24 2025 07:57:42. | |
string.h | File | 68985 bytes | April 24 2025 07:57:42. | |
struct.h | File | 8946 bytes | April 24 2025 07:57:42. | |
thread.h | File | 18460 bytes | April 24 2025 07:57:42. | |
time.h | File | 6486 bytes | April 24 2025 07:57:42. | |
variable.h | File | 21308 bytes | April 24 2025 07:57:42. | |
vm.h | File | 16872 bytes | April 24 2025 07:57:42. |
#ifndef RBIMPL_INTERN_SELECT_H /*-*-C++-*-vi:se ft=cpp:*/ #define RBIMPL_INTERN_SELECT_H /** * @file * @author Ruby developers <ruby-core@ruby-lang.org> * @copyright This file is a part of the programming language Ruby. * Permission is hereby granted, to either redistribute and/or * modify this file, provided that the conditions mentioned in the * file COPYING are met. Consult the file for details. * @warning Symbols prefixed with either `RBIMPL` or `rbimpl` are * implementation details. Don't take them as canon. They could * rapidly appear then vanish. The name (path) of this header file * is also an implementation detail. Do not expect it to persist * at the place it is now. Developers are free to move it anywhere * anytime at will. * @note To ruby-core: remember that this header can be possibly * recursively included from extension libraries written in C++. * Do not expect for instance `__VA_ARGS__` is always available. * We assume C99 for ruby itself but we don't assume languages of * extension libraries. They could be written in C++98. * @brief Public APIs to provide ::rb_fd_select(). * @note Functions and structs defined in this header file are not * necessarily ruby-specific. They don't need ::VALUE etc. */ #include "ruby/internal/config.h" #ifdef HAVE_SYS_TYPES_H # include <sys/types.h> /* for NFDBITS (BSD Net/2) */ #endif #include "ruby/internal/dllexport.h" /* thread.c */ #if defined(NFDBITS) && defined(HAVE_RB_FD_INIT) # include "ruby/internal/intern/select/largesize.h" #elif defined(_WIN32) # include "ruby/internal/intern/select/win32.h" # /** Does nothing (defined for compatibility). */ # define rb_fd_resize(n, f) ((void)(f)) #else # include "ruby/internal/intern/select/posix.h" # /** Does nothing (defined for compatibility). */ # define rb_fd_resize(n, f) ((void)(f)) #endif RBIMPL_SYMBOL_EXPORT_BEGIN() struct timeval; /** * Waits for multiple file descriptors at once. This is basically a wrapper of * system-provided select() with releasing GVL, to allow other Ruby threads run * in parallel. * * @param[in] nfds Max FD in everything passed, plus one. * @param[in,out] rfds Set of FDs to wait for reads. * @param[in,out] wfds Set of FDs to wait for writes. * @param[in,out] efds Set of FDs to wait for OOBs. * @param[in,out] timeout Max blocking duration. * @retval -1 Failed, errno set. * @retval 0 Timeout exceeded. * @retval otherwise Total number of file descriptors returned. * @post `rfds` contains readable FDs. * @post `wfds` contains writable FDs. * @post `efds` contains exceptional FDs. * @post `timeout` is the time left. * @note All pointers are allowed to be null pointers. * * Although backend threads can run in parallel of this function, touching a * file descriptor from multiple threads could be problematic. For instance * what happens when a thread closes a file descriptor that is selected by * someone else, vastly varies among operating systems. You would better avoid * touching an fd from more than one threads. * * @internal * * Although any file descriptors are possible here, it makes completely no * sense to pass a descriptor that is not `O_NONBLOCK`. If you want to know * the reason for this limitation in detail, you might find this thread super * interesting: https://lkml.org/lkml/2004/10/6/117 */ int rb_thread_fd_select(int nfds, rb_fdset_t *rfds, rb_fdset_t *wfds, rb_fdset_t *efds, struct timeval *timeout); RBIMPL_SYMBOL_EXPORT_END() #endif /* RBIMPL_INTERN_SELECT_H */
SILENT KILLER Tool