summaryrefslogtreecommitdiff
path: root/file_io/unix/pipe.c
diff options
context:
space:
mode:
authorJeff Trawick <trawick@apache.org>2003-11-24 00:17:24 +0000
committerJeff Trawick <trawick@apache.org>2003-11-24 00:17:24 +0000
commit2f3ba9e965b655a6fc080b253c30379c0b8ea146 (patch)
tree4576f6e50f7167bf9049e3d9b680c1288b43b82c /file_io/unix/pipe.c
parentcd82285b8ad1a091cfca3510fa40760578a7598c (diff)
downloadapr-2f3ba9e965b655a6fc080b253c30379c0b8ea146.tar.gz
on Unix-ish platforms, apr_wait_for_io_or_timeout() can just use poll(2)
it is a perfect match for the feature set needed and avoids the setup code at object creation time currently required to use apr_pollset_poll() instead of poll(2) future: select()-based function is trivial too is any platform then left needing the support in apr/(network_io|file_io)/unix for allocating a pollset any time we create a file or socket just in case apr_wait_for_io_or_timeout() will be called? git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@64794 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'file_io/unix/pipe.c')
-rw-r--r--file_io/unix/pipe.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/file_io/unix/pipe.c b/file_io/unix/pipe.c
index 140c98f8e..5ab52cbdd 100644
--- a/file_io/unix/pipe.c
+++ b/file_io/unix/pipe.c
@@ -198,10 +198,11 @@ APR_DECLARE(apr_status_t) apr_os_pipe_put_ex(apr_file_t **file,
apr_unix_file_cleanup,
apr_pool_cleanup_null);
}
-
+#ifndef WAITIO_USES_POLL
/* Create a pollset with room for one descriptor. */
/* ### check return codes */
(void) apr_pollset_create(&(*file)->pollset, 1, pool, 0);
+#endif
return APR_SUCCESS;
}
@@ -233,8 +234,9 @@ APR_DECLARE(apr_status_t) apr_file_pipe_create(apr_file_t **in, apr_file_t **out
#if APR_HAS_THREADS
(*in)->thlock = NULL;
#endif
+#ifndef WAITIO_USES_POLL
(void) apr_pollset_create(&(*in)->pollset, 1, pool, 0);
-
+#endif
(*out) = (apr_file_t *)apr_pcalloc(pool, sizeof(apr_file_t));
(*out)->pool = pool;
(*out)->filedes = filedes[1];
@@ -247,8 +249,9 @@ APR_DECLARE(apr_status_t) apr_file_pipe_create(apr_file_t **in, apr_file_t **out
#if APR_HAS_THREADS
(*out)->thlock = NULL;
#endif
+#ifndef WAITIO_USES_POLL
(void) apr_pollset_create(&(*out)->pollset, 1, pool, 0);
-
+#endif
apr_pool_cleanup_register((*in)->pool, (void *)(*in), apr_unix_file_cleanup,
apr_pool_cleanup_null);
apr_pool_cleanup_register((*out)->pool, (void *)(*out), apr_unix_file_cleanup,