php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_fibers.h File Reference
#include "zend_API.h"
#include "zend_types.h"

Go to the source code of this file.

Data Structures

struct  _zend_fiber_transfer
 
struct  _zend_fiber_context
 
struct  _zend_fiber
 

Macros

#define ZEND_FIBER_GUARD_PAGES   1
 
#define ZEND_FIBER_DEFAULT_C_STACK_SIZE   (4096 * (((sizeof(void *)) < 8) ? 256 : 512))
 
#define ZEND_FIBER_VM_STACK_SIZE   (1024 * sizeof(zval))
 

Typedefs

typedef struct _zend_fiber_stack zend_fiber_stack
 
typedef struct _zend_fiber_transfer zend_fiber_transfer
 
typedef void(* zend_fiber_coroutine) (zend_fiber_transfer *transfer)
 
typedef void(* zend_fiber_clean) (zend_fiber_context *context)
 

Enumerations

enum  zend_fiber_status { ZEND_FIBER_STATUS_INIT , ZEND_FIBER_STATUS_RUNNING , ZEND_FIBER_STATUS_SUSPENDED , ZEND_FIBER_STATUS_DEAD }
 
enum  zend_fiber_flag { ZEND_FIBER_FLAG_THREW = 1 << 0 , ZEND_FIBER_FLAG_BAILOUT = 1 << 1 , ZEND_FIBER_FLAG_DESTROYED = 1 << 2 }
 
enum  zend_fiber_transfer_flag { ZEND_FIBER_TRANSFER_FLAG_ERROR = 1 << 0 , ZEND_FIBER_TRANSFER_FLAG_BAILOUT = 1 << 1 }
 

Functions

void zend_register_fiber_ce (void)
 
void zend_fiber_init (void)
 
void zend_fiber_shutdown (void)
 
ZEND_API zend_result zend_fiber_start (zend_fiber *fiber, zval *return_value)
 
ZEND_API void zend_fiber_resume (zend_fiber *fiber, zval *value, zval *return_value)
 
ZEND_API void zend_fiber_suspend (zend_fiber *fiber, zval *value, zval *return_value)
 
ZEND_API zend_result zend_fiber_init_context (zend_fiber_context *context, void *kind, zend_fiber_coroutine coroutine, size_t stack_size)
 
ZEND_API void zend_fiber_destroy_context (zend_fiber_context *context)
 
ZEND_API void zend_fiber_switch_context (zend_fiber_transfer *transfer)
 
ZEND_API void zend_fiber_switch_block (void)
 
ZEND_API void zend_fiber_switch_unblock (void)
 
ZEND_API bool zend_fiber_switch_blocked (void)
 

Variables

ZEND_API zend_class_entryzend_ce_fiber
 

Macro Definition Documentation

◆ ZEND_FIBER_DEFAULT_C_STACK_SIZE

#define ZEND_FIBER_DEFAULT_C_STACK_SIZE   (4096 * (((sizeof(void *)) < 8) ? 256 : 512))

Definition at line 28 of file zend_fibers.h.

◆ ZEND_FIBER_GUARD_PAGES

#define ZEND_FIBER_GUARD_PAGES   1

Definition at line 26 of file zend_fibers.h.

◆ ZEND_FIBER_VM_STACK_SIZE

#define ZEND_FIBER_VM_STACK_SIZE   (1024 * sizeof(zval))

Definition at line 29 of file zend_fibers.h.

Typedef Documentation

◆ zend_fiber_clean

typedef void(* zend_fiber_clean) (zend_fiber_context *context)

Definition at line 74 of file zend_fibers.h.

◆ zend_fiber_coroutine

typedef void(* zend_fiber_coroutine) (zend_fiber_transfer *transfer)

Definition at line 73 of file zend_fibers.h.

◆ zend_fiber_stack

Definition at line 57 of file zend_fibers.h.

◆ zend_fiber_transfer

Enumeration Type Documentation

◆ zend_fiber_flag

Enumerator
ZEND_FIBER_FLAG_THREW 
ZEND_FIBER_FLAG_BAILOUT 
ZEND_FIBER_FLAG_DESTROYED 

Definition at line 40 of file zend_fibers.h.

◆ zend_fiber_status

Enumerator
ZEND_FIBER_STATUS_INIT 
ZEND_FIBER_STATUS_RUNNING 
ZEND_FIBER_STATUS_SUSPENDED 
ZEND_FIBER_STATUS_DEAD 

Definition at line 33 of file zend_fibers.h.

◆ zend_fiber_transfer_flag

Enumerator
ZEND_FIBER_TRANSFER_FLAG_ERROR 
ZEND_FIBER_TRANSFER_FLAG_BAILOUT 

Definition at line 46 of file zend_fibers.h.

Function Documentation

◆ zend_fiber_destroy_context()

ZEND_API void zend_fiber_destroy_context ( zend_fiber_context * context)

Definition at line 460 of file zend_fibers.c.

◆ zend_fiber_init()

void zend_fiber_init ( void )

Definition at line 1121 of file zend_fibers.c.

◆ zend_fiber_init_context()

ZEND_API zend_result zend_fiber_init_context ( zend_fiber_context * context,
void * kind,
zend_fiber_coroutine coroutine,
size_t stack_size )

Definition at line 413 of file zend_fibers.c.

◆ zend_fiber_resume()

ZEND_API void zend_fiber_resume ( zend_fiber * fiber,
zval * value,
zval * return_value )

Definition at line 724 of file zend_fibers.c.

◆ zend_fiber_shutdown()

void zend_fiber_shutdown ( void )

Definition at line 1143 of file zend_fibers.c.

◆ zend_fiber_start()

ZEND_API zend_result zend_fiber_start ( zend_fiber * fiber,
zval * return_value )

Definition at line 707 of file zend_fibers.c.

◆ zend_fiber_suspend()

ZEND_API void zend_fiber_suspend ( zend_fiber * fiber,
zval * value,
zval * return_value )

Definition at line 746 of file zend_fibers.c.

◆ zend_fiber_switch_block()

ZEND_API void zend_fiber_switch_block ( void )

Definition at line 397 of file zend_fibers.c.

◆ zend_fiber_switch_blocked()

ZEND_API bool zend_fiber_switch_blocked ( void )

Definition at line 408 of file zend_fibers.c.

◆ zend_fiber_switch_context()

ZEND_API void zend_fiber_switch_context ( zend_fiber_transfer * transfer)

Definition at line 471 of file zend_fibers.c.

◆ zend_fiber_switch_unblock()

ZEND_API void zend_fiber_switch_unblock ( void )

Definition at line 402 of file zend_fibers.c.

◆ zend_register_fiber_ce()

void zend_register_fiber_ce ( void )

Definition at line 1105 of file zend_fibers.c.

Variable Documentation

◆ zend_ce_fiber

ZEND_API zend_class_entry* zend_ce_fiber
extern

Definition at line 180 of file zend_fibers.c.