Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Модуль coio

enum COIO_EVENT

enumerator COIO_READ

Событие READ

enumerator COIO_WRITE

Событие WRITE

int coio_wait(int fd, int event, double timeout)

Ожидать событие READ или WRITE на сокете (fd). Передаёт управление.

Параметры:

  • fd (int) — файловый дескриптор неблокирующего сокета

  • event (int) — запрашиваемые для ожидания события. Комбинация битовых флагов COIO_READ | COIO_WRITE.

  • timeout (double) — время ожидания в секундах.

Возвращает

0 - истекло время ожидания

Возвращает

0 - возвращённые события. Комбинация битовых флагов TNT_IO_READ | TNT_IO_WRITE.

ssize_t coio_call(ssize_t(*func)(va_list), ...)

Создать новую задачу eio с указанной функцией и аргументами. Передать управление и ожидать завершения задачи. Эта функция может использовать параметр конфигурации worker_pool_threads.

Чтобы избежать двойной проверки ошибок, эта функция не выбрасывает исключения. В большинстве случаев также необходимо проверить возвращаемое значение вызванной функции и выполнить требуемые действия. Если func устанавливает errno, значение errno сохраняется после вызова.

Возвращает

-1 и errno = ENOMEM, если не удалось создать задачу

Возвращает

значение, возвращённое функцией (errno сохраняется).

Пример:

static ssize_t openfile_cb(va_list ap){        const char* filename = va_arg(ap);        int flags = va_arg(ap);        return open(filename, flags);}if (coio_call(openfile_cb, "/tmp/file", 0) == -1)    // handle errors....

int coio_getaddrinfo(const char *host, const char *port, const struct addrinfo *hints, struct addrinfo **res, double timeout)

Версия getaddrinfo(3), дружественная к файберам.

int coio_close(int fd)

Закрыть fd и разбудить все файберы, заблокированные в вызове coio_wait() для этого fd.

Параметры:

  • fd (int) — файловый дескриптор неблокирующего сокета

Возвращает

результат close(fd), см. close(2)