@@ -201,6 +201,7 @@ typedef void (*zend_async_event_dispose_t)(zend_async_event_t *event);
201201typedef zend_string * (* zend_async_event_info_t )(zend_async_event_t * event );
202202
203203typedef struct _zend_async_poll_event_s zend_async_poll_event_t ;
204+ typedef struct _zend_async_poll_proxy_s zend_async_poll_proxy_t ;
204205typedef struct _zend_async_timer_event_s zend_async_timer_event_t ;
205206typedef struct _zend_async_signal_event_s zend_async_signal_event_t ;
206207typedef struct _zend_async_filesystem_event_s zend_async_filesystem_event_t ;
@@ -257,6 +258,8 @@ typedef zend_async_poll_event_t *(*zend_async_new_socket_event_t)(
257258 zend_socket_t socket , async_poll_event events , size_t extra_size );
258259typedef zend_async_poll_event_t * (* zend_async_new_poll_event_t )(zend_file_descriptor_t fh ,
259260 zend_socket_t socket , async_poll_event events , size_t extra_size );
261+ typedef zend_async_poll_proxy_t * (* zend_async_new_poll_proxy_event_t )(
262+ zend_async_poll_event_t * poll_event , async_poll_event events , size_t extra_size );
260263typedef zend_async_timer_event_t * (* zend_async_new_timer_event_t )(const zend_ulong timeout ,
261264 const zend_ulong nanoseconds , const bool is_periodic , size_t extra_size );
262265typedef zend_async_signal_event_t * (* zend_async_new_signal_event_t )(int signum , size_t extra_size );
@@ -685,6 +688,12 @@ struct _zend_async_poll_event_s {
685688 async_poll_event triggered_events ;
686689};
687690
691+ struct _zend_async_poll_proxy_s {
692+ zend_async_event_t base ;
693+ zend_async_poll_event_t * poll_event ;
694+ async_poll_event events ;
695+ };
696+
688697struct _zend_async_timer_event_s {
689698 zend_async_event_t base ;
690699 /* The timeout in milliseconds. */
@@ -1361,6 +1370,7 @@ ZEND_API extern zend_async_reactor_execute_t zend_async_reactor_execute_fn;
13611370ZEND_API extern zend_async_reactor_loop_alive_t zend_async_reactor_loop_alive_fn ;
13621371ZEND_API extern zend_async_new_socket_event_t zend_async_new_socket_event_fn ;
13631372ZEND_API extern zend_async_new_poll_event_t zend_async_new_poll_event_fn ;
1373+ ZEND_API extern zend_async_new_poll_proxy_event_t zend_async_new_poll_proxy_event_fn ;
13641374ZEND_API extern zend_async_new_timer_event_t zend_async_new_timer_event_fn ;
13651375ZEND_API extern zend_async_new_signal_event_t zend_async_new_signal_event_fn ;
13661376ZEND_API extern zend_async_new_process_event_t zend_async_new_process_event_fn ;
@@ -1409,6 +1419,7 @@ ZEND_API bool zend_async_reactor_register(char *module, bool allow_override,
14091419 zend_async_reactor_loop_alive_t reactor_loop_alive_fn ,
14101420 zend_async_new_socket_event_t new_socket_event_fn ,
14111421 zend_async_new_poll_event_t new_poll_event_fn ,
1422+ zend_async_new_poll_proxy_event_t new_poll_proxy_event_fn ,
14121423 zend_async_new_timer_event_t new_timer_event_fn ,
14131424 zend_async_new_signal_event_t new_signal_event_fn ,
14141425 zend_async_new_process_event_t new_process_event_fn ,
@@ -1590,6 +1601,10 @@ END_EXTERN_C()
15901601 zend_async_new_poll_event_fn(fh, socket, events, 0)
15911602#define ZEND_ASYNC_NEW_POLL_EVENT_EX (fh , socket , events , extra_size ) \
15921603 zend_async_new_poll_event_fn(fh, socket, events, extra_size)
1604+ #define ZEND_ASYNC_NEW_POLL_PROXY_EVENT (poll_event , events ) \
1605+ zend_async_new_poll_proxy_event_fn(poll_event, events, 0)
1606+ #define ZEND_ASYNC_NEW_POLL_PROXY_EVENT_EX (poll_event , events , extra_size ) \
1607+ zend_async_new_poll_proxy_event_fn(poll_event, events, extra_size)
15931608#define ZEND_ASYNC_NEW_TIMER_EVENT (timeout , is_periodic ) \
15941609 zend_async_new_timer_event_fn(timeout, 0, is_periodic, 0)
15951610#define ZEND_ASYNC_NEW_TIMER_EVENT_EX (timeout , is_periodic , extra_size ) \
0 commit comments