Apache HTTPD
Classes | Macros | Typedefs | Functions | Variables
testpoll.c File Reference
#include "testutil.h"
#include "apr_strings.h"
#include "apr_errno.h"
#include "apr_general.h"
#include "apr_lib.h"
#include "apr_network_io.h"
#include "apr_poll.h"

Go to the source code of this file.

Classes

struct  pollcb_baton_t
 

Macros

#define HAVE_EPOLL_WAIT_RELIABLE_TIMEOUT   0
 
#define SMALL_NUM_SOCKETS   3
 
#define LARGE_NUM_SOCKETS   50
 
#define POLLCB_PREREQ
 
#define JUSTSLEEP_DELAY   apr_time_from_msec(200)
 
#define JUSTSLEEP_JIFFY   apr_time_from_msec(10)
 
#define JUSTSLEEP_ENOUGH(ts, te)    ((te) - (ts) >= JUSTSLEEP_DELAY - JUSTSLEEP_JIFFY)
 

Typedefs

typedef struct pollcb_baton_t pollcb_baton_t
 

Functions

static void make_socket (apr_socket_t **sock, apr_sockaddr_t **sa, apr_port_t port, apr_pool_t *p, abts_case *tc)
 
static void send_msg (apr_socket_t **sockarray, apr_sockaddr_t **sas, int which, abts_case *tc)
 
static void recv_msg (apr_socket_t **sockarray, int which, apr_pool_t *p, abts_case *tc)
 
static void create_all_sockets (abts_case *tc, void *data)
 
static void setup_pollset (abts_case *tc, void *data)
 
static void multi_event_pollset (abts_case *tc, void *data)
 
static void add_sockets_pollset (abts_case *tc, void *data)
 
static void nomessage_pollset (abts_case *tc, void *data)
 
static void send0_pollset (abts_case *tc, void *data)
 
static void recv0_pollset (abts_case *tc, void *data)
 
static void send_middle_pollset (abts_case *tc, void *data)
 
static void clear_middle_pollset (abts_case *tc, void *data)
 
static void send_last_pollset (abts_case *tc, void *data)
 
static void clear_last_pollset (abts_case *tc, void *data)
 
static void close_all_sockets (abts_case *tc, void *data)
 
static void pollset_remove (abts_case *tc, void *data)
 
static void setup_pollcb (abts_case *tc, void *data)
 
static apr_status_t trigger_pollcb_cb (void *baton, apr_pollfd_t *descriptor)
 
static void trigger_pollcb (abts_case *tc, void *data)
 
static void timeout_pollcb (abts_case *tc, void *data)
 
static void timeout_pollin_pollcb (abts_case *tc, void *data)
 
static void pollset_default (abts_case *tc, void *data)
 
static void pollcb_default (abts_case *tc, void *data)
 
static void pollset_wakeup (abts_case *tc, void *data)
 
static apr_status_t wakeup_pollcb_cb (void *baton, apr_pollfd_t *descriptor)
 
static void pollcb_wakeup (abts_case *tc, void *data)
 
static void justsleep (abts_case *tc, void *data)
 
abts_suitetestpoll (abts_suite *suite)
 

Variables

static apr_socket_ts [50]
 
static apr_sockaddr_tsa [50]
 
static apr_pollset_tpollset
 
static apr_pollcb_tpollcb
 
static int default_pollset_impl = APR_POLLSET_DEFAULT
 

Macro Definition Documentation

◆ HAVE_EPOLL_WAIT_RELIABLE_TIMEOUT

#define HAVE_EPOLL_WAIT_RELIABLE_TIMEOUT   0

Definition at line 29 of file testpoll.c.

◆ JUSTSLEEP_DELAY

#define JUSTSLEEP_DELAY   apr_time_from_msec(200)

Definition at line 864 of file testpoll.c.

◆ JUSTSLEEP_ENOUGH

#define JUSTSLEEP_ENOUGH (   ts,
  te 
)     ((te) - (ts) >= JUSTSLEEP_DELAY - JUSTSLEEP_JIFFY)

Definition at line 870 of file testpoll.c.

◆ JUSTSLEEP_JIFFY

#define JUSTSLEEP_JIFFY   apr_time_from_msec(10)

Definition at line 869 of file testpoll.c.

◆ LARGE_NUM_SOCKETS

#define LARGE_NUM_SOCKETS   50

Definition at line 37 of file testpoll.c.

◆ POLLCB_PREREQ

#define POLLCB_PREREQ
Value:
do { \
if (pollcb == NULL) { \
ABTS_NOT_IMPL(tc, "pollcb interface not supported"); \
return; \
} \
} while (0)
apr_size_t size
return NULL
Definition mod_so.c:359
static apr_pollcb_t * pollcb
Definition testpoll.c:42

Definition at line 577 of file testpoll.c.

◆ SMALL_NUM_SOCKETS

#define SMALL_NUM_SOCKETS   3

Definition at line 32 of file testpoll.c.

Typedef Documentation

◆ pollcb_baton_t

Function Documentation

◆ add_sockets_pollset()

static void add_sockets_pollset ( abts_case tc,
void *  data 
)
static

< Can read without blocking

Definition at line 361 of file testpoll.c.

◆ clear_last_pollset()

static void clear_last_pollset ( abts_case tc,
void *  data 
)
static

Definition at line 475 of file testpoll.c.

◆ clear_middle_pollset()

static void clear_middle_pollset ( abts_case tc,
void *  data 
)
static

Definition at line 444 of file testpoll.c.

◆ close_all_sockets()

static void close_all_sockets ( abts_case tc,
void *  data 
)
static

Definition at line 489 of file testpoll.c.

◆ create_all_sockets()

static void create_all_sockets ( abts_case tc,
void *  data 
)
static

Definition at line 128 of file testpoll.c.

◆ justsleep()

static void justsleep ( abts_case tc,
void *  data 
)
static

Definition at line 874 of file testpoll.c.

◆ make_socket()

static void make_socket ( apr_socket_t **  sock,
apr_sockaddr_t **  sa,
apr_port_t  port,
apr_pool_t p,
abts_case tc 
)
static

Definition at line 57 of file testpoll.c.

◆ multi_event_pollset()

static void multi_event_pollset ( abts_case tc,
void *  data 
)
static

< Can read without blocking

< Can write without blocking

< Can read without blocking

< Can write without blocking

< Can read without blocking

< Can write without blocking

< Can write without blocking

Definition at line 307 of file testpoll.c.

◆ nomessage_pollset()

static void nomessage_pollset ( abts_case tc,
void *  data 
)
static

Definition at line 380 of file testpoll.c.

◆ pollcb_default()

static void pollcb_default ( abts_case tc,
void *  data 
)
static

< Do not try to use the default method if * the specified non-default method cannot be * used

< Do not try to use the default method if * the specified non-default method cannot be * used

Definition at line 727 of file testpoll.c.

◆ pollcb_wakeup()

static void pollcb_wakeup ( abts_case tc,
void *  data 
)
static

< Poll operations are interruptable by * apr_pollset_wakeup() or apr_pollcb_wakeup()

Definition at line 843 of file testpoll.c.

◆ pollset_default()

static void pollset_default ( abts_case tc,
void *  data 
)
static

< Do not try to use the default method if * the specified non-default method cannot be * used

< Do not try to use the default method if * the specified non-default method cannot be * used

Definition at line 683 of file testpoll.c.

◆ pollset_remove()

static void pollset_remove ( abts_case tc,
void *  data 
)
static

< Can write without blocking

Definition at line 500 of file testpoll.c.

◆ pollset_wakeup()

static void pollset_wakeup ( abts_case tc,
void *  data 
)
static

< Poll operations are interruptable by * apr_pollset_wakeup() or apr_pollcb_wakeup()

< Can read without blocking

Definition at line 786 of file testpoll.c.

◆ recv0_pollset()

static void recv0_pollset ( abts_case tc,
void *  data 
)
static

Definition at line 408 of file testpoll.c.

◆ recv_msg()

static void recv_msg ( apr_socket_t **  sockarray,
int  which,
apr_pool_t p,
abts_case tc 
)
static

Definition at line 109 of file testpoll.c.

◆ send0_pollset()

static void send0_pollset ( abts_case tc,
void *  data 
)
static

Definition at line 392 of file testpoll.c.

◆ send_last_pollset()

static void send_last_pollset ( abts_case tc,
void *  data 
)
static

Definition at line 459 of file testpoll.c.

◆ send_middle_pollset()

static void send_middle_pollset ( abts_case tc,
void *  data 
)
static

Definition at line 421 of file testpoll.c.

◆ send_msg()

static void send_msg ( apr_socket_t **  sockarray,
apr_sockaddr_t **  sas,
int  which,
abts_case tc 
)
static

Definition at line 96 of file testpoll.c.

◆ setup_pollcb()

static void setup_pollcb ( abts_case tc,
void *  data 
)
static

Definition at line 585 of file testpoll.c.

◆ setup_pollset()

static void setup_pollset ( abts_case tc,
void *  data 
)
static

Definition at line 299 of file testpoll.c.

◆ testpoll()

abts_suite * testpoll ( abts_suite suite)

Definition at line 936 of file testpoll.c.

◆ timeout_pollcb()

static void timeout_pollcb ( abts_case tc,
void *  data 
)
static

Definition at line 639 of file testpoll.c.

◆ timeout_pollin_pollcb()

static void timeout_pollin_pollcb ( abts_case tc,
void *  data 
)
static

< Can read without blocking

Definition at line 654 of file testpoll.c.

◆ trigger_pollcb()

static void trigger_pollcb ( abts_case tc,
void *  data 
)
static

< Can read without blocking

Definition at line 612 of file testpoll.c.

◆ trigger_pollcb_cb()

static apr_status_t trigger_pollcb_cb ( void *  baton,
apr_pollfd_t descriptor 
)
static

Definition at line 603 of file testpoll.c.

◆ wakeup_pollcb_cb()

static apr_status_t wakeup_pollcb_cb ( void *  baton,
apr_pollfd_t descriptor 
)
static

Definition at line 835 of file testpoll.c.

Variable Documentation

◆ default_pollset_impl

int default_pollset_impl = APR_POLLSET_DEFAULT
static

Definition at line 55 of file testpoll.c.

◆ pollcb

apr_pollcb_t* pollcb
static

Definition at line 42 of file testpoll.c.

◆ pollset

apr_pollset_t* pollset
static

Definition at line 41 of file testpoll.c.

◆ s

apr_socket_t* s[50]
static

Definition at line 39 of file testpoll.c.

◆ sa

apr_sockaddr_t* sa[50]
static

Definition at line 40 of file testpoll.c.