Lely core libraries
2.2.5
|
#include "io.h"
#include <lely/io2/posix/poll.h>
#include <lely/util/dllist.h>
#include <lely/util/util.h>
#include <assert.h>
#include <errno.h>
#include <limits.h>
#include <signal.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <poll.h>
Go to the source code of this file.
Data Structures | |
struct | io_poll_thrd |
struct | io_poll |
Functions | |
io_poll_t * | io_poll_create (io_ctx_t *ctx, int signo) |
Creates a new I/O polling instance. More... | |
void | io_poll_destroy (io_poll_t *poll) |
Destroys an I/O polling interface. More... | |
io_ctx_t * | io_poll_get_ctx (const io_poll_t *poll) |
Returns a pointer to the I/O context with which the I/O polling instance is registered. | |
ev_poll_t * | io_poll_get_poll (const io_poll_t *poll) |
Returns a pointer to the ev_poll_t instance corresponding to the I/O polling instance. | |
int | io_poll_watch (io_poll_t *poll, int fd, int events, struct io_poll_watch *watch) |
Registers a file descriptor with an I/O polling instance and monitors it for I/O events (through ev_poll_wait()). More... | |
This file is part of the I/O library; it contains the I/O polling implementation for POSIX platforms.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Definition in file poll.c.
Creates a new I/O polling instance.
ctx | a pointer to the I/O context with which the polling instance should be registered. |
signo | the signal number used to wake up threads waiting on io_poll_watch() with ev_poll_kill(). If signo is 0, the default value SIGUSR1 is used. |
errno
. void io_poll_destroy | ( | io_poll_t * | poll | ) |
int io_poll_watch | ( | io_poll_t * | poll, |
int | fd, | ||
int | events, | ||
struct io_poll_watch * | watch | ||
) |
Registers a file descriptor with an I/O polling instance and monitors it for I/O events (through ev_poll_wait()).
poll | a pointer to an I/O polling instance. |
fd | the file descriptor to be monitored. |
events | the I/O events to monitor (any combination of IO_EVENT_IN, IO_EVENT_PRI, IO_EVENT_OUT, IO_EVENT_ERR and IO_EVENT_HUP). If events is non-zero the file descriptor is (re)registered and monitored for the specified events. Note that error and disconnect events are monitored regardless of whether IO_EVENT_ERR and IO_EVENT_HUP are specified. If events is 0, the file descriptor is unregistered. |
watch | a pointer to an I/O event monitor. If fd has already been registered with a different io_poll_watch object, an error is returned and errno is set to EEXIST . |
errno
.