diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2016-06-27 21:09:39 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2016-06-27 21:09:39 +0100 |
commit | 47ccd9855db44881339e68093655247a78fd8598 (patch) | |
tree | 521f29cf9f5bb7302c24b029ea56f835fc127bbe /content/fetch.h | |
parent | 767b73f5c703e447a3041423ff220a88a7c0c569 (diff) | |
download | netsurf-47ccd9855db44881339e68093655247a78fd8598.tar.gz netsurf-47ccd9855db44881339e68093655247a78fd8598.tar.bz2 |
Move fetcher_fdset to fetch.h (and rename to fetch_fdset). Maybe not ideal but better
Diffstat (limited to 'content/fetch.h')
-rw-r--r-- | content/fetch.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/content/fetch.h b/content/fetch.h index 3c1f1ccae..6694ffda9 100644 --- a/content/fetch.h +++ b/content/fetch.h @@ -210,5 +210,30 @@ const char *fetch_get_referer_to_send(struct fetch *fetch); */ void fetch_set_cookie(struct fetch *fetch, const char *data); +/** + * Get the set of file descriptors the fetchers are currently using. + * + * This obtains the file descriptors the fetch system is using to + * obtain data. It will cause the fetchers to make progress, if + * possible, potentially completing fetches before requiring activity + * on file descriptors. + * + * If a set of descriptors is returned (maxfd is not -1) The caller is + * expected to wait on them (with select etc.) and continue to obtain + * the fdset with this call. This will switch the fetchers from polled + * mode to waiting for network activity which is much more efficient. + * + * \note If the caller does not subsequently obtain the fdset again + * the fetchers will fall back to the less efficient polled + * operation. The fallback to polled operation will only occour after + * a timeout which introduces additional delay. + * + * \param[out] read_fd_set The fd set for read. + * \param[out] write_fd_set The fd set for write. + * \param[out] except_fd_set The fd set for exceptions. + * \param[out] maxfd The highest fd number in the set or -1 if no fd available. + * \return NSERROR_OK on success or appropriate error code. + */ +nserror fetch_fdset(fd_set *read_fd_set, fd_set *write_fd_set, fd_set *except_fd_set, int *maxfd); #endif |