php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_fibers.c File Reference
#include "zend.h"
#include "zend_API.h"
#include "zend_gc.h"
#include "zend_ini.h"
#include "zend_variables.h"
#include "zend_vm.h"
#include "zend_exceptions.h"
#include "zend_builtin_functions.h"
#include "zend_observer.h"
#include "zend_mmap.h"
#include "zend_compile.h"
#include "zend_closures.h"
#include "zend_generators.h"
#include "zend_fibers.h"
#include "zend_fibers_arginfo.h"
#include <unistd.h>
#include <sys/mman.h>
#include <limits.h>

Go to the source code of this file.

Data Structures

struct  _zend_fiber_stack
 
struct  _zend_fiber_vm_state
 
struct  boost_context_data
 

Macros

#define MAP_STACK   0
 
#define MAP_FAILED   ((void * ) -1)
 
#define ZEND_FIBER_DEFAULT_PAGE_SIZE   4096
 

Typedefs

typedef struct _zend_fiber_vm_state zend_fiber_vm_state
 

Functions

voidmake_fcontext (void *sp, size_t size, void(*fn)(boost_context_data))
 
ZEND_INDIRECT_RETURN boost_context_data jump_fcontext (void *to, 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)
 
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 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_resume_exception (zend_fiber *fiber, zval *exception, zval *return_value)
 
ZEND_API void zend_fiber_suspend (zend_fiber *fiber, zval *value, zval *return_value)
 
 ZEND_METHOD (Fiber, __construct)
 
 ZEND_METHOD (Fiber, start)
 
 ZEND_METHOD (Fiber, suspend)
 
 ZEND_METHOD (Fiber, resume)
 
 ZEND_METHOD (Fiber, throw)
 
 ZEND_METHOD (Fiber, isStarted)
 
 ZEND_METHOD (Fiber, isSuspended)
 
 ZEND_METHOD (Fiber, isRunning)
 
 ZEND_METHOD (Fiber, isTerminated)
 
 ZEND_METHOD (Fiber, getReturn)
 
 ZEND_METHOD (Fiber, getCurrent)
 
 ZEND_METHOD (FiberError, __construct)
 
void zend_register_fiber_ce (void)
 
void zend_fiber_init (void)
 
void zend_fiber_shutdown (void)
 

Variables

ZEND_API zend_class_entryzend_ce_fiber
 
ZEND_TLS uint32_t zend_fiber_switch_blocking = 0
 

Macro Definition Documentation

◆ MAP_FAILED

#define MAP_FAILED   ((void * ) -1)

Definition at line 63 of file zend_fibers.c.

◆ MAP_STACK

#define MAP_STACK   0

Definition at line 59 of file zend_fibers.c.

◆ ZEND_FIBER_DEFAULT_PAGE_SIZE

#define ZEND_FIBER_DEFAULT_PAGE_SIZE   4096

Definition at line 189 of file zend_fibers.c.

Typedef Documentation

◆ zend_fiber_vm_state

Function Documentation

◆ jump_fcontext()

ZEND_INDIRECT_RETURN boost_context_data jump_fcontext ( void * to,
zend_fiber_transfer * transfer )
extern

◆ make_fcontext()

void * make_fcontext ( void * sp,
size_t size,
void(* fn )(boost_context_data) )
extern

◆ 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_resume_exception()

ZEND_API void zend_fiber_resume_exception ( zend_fiber * fiber,
zval * exception,
zval * return_value )

Definition at line 735 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_METHOD() [1/12]

ZEND_METHOD ( Fiber ,
__construct  )

Definition at line 867 of file zend_fibers.c.

◆ ZEND_METHOD() [2/12]

ZEND_METHOD ( Fiber ,
getCurrent  )

Definition at line 1082 of file zend_fibers.c.

◆ ZEND_METHOD() [3/12]

ZEND_METHOD ( Fiber ,
getReturn  )

Definition at line 1055 of file zend_fibers.c.

◆ ZEND_METHOD() [4/12]

ZEND_METHOD ( Fiber ,
isRunning  )

Definition at line 1033 of file zend_fibers.c.

◆ ZEND_METHOD() [5/12]

ZEND_METHOD ( Fiber ,
isStarted  )

Definition at line 1011 of file zend_fibers.c.

◆ ZEND_METHOD() [6/12]

ZEND_METHOD ( Fiber ,
isSuspended  )

Definition at line 1022 of file zend_fibers.c.

◆ ZEND_METHOD() [7/12]

ZEND_METHOD ( Fiber ,
isTerminated  )

Definition at line 1044 of file zend_fibers.c.

◆ ZEND_METHOD() [8/12]

ZEND_METHOD ( Fiber ,
resume  )

Definition at line 954 of file zend_fibers.c.

◆ ZEND_METHOD() [9/12]

ZEND_METHOD ( Fiber ,
start  )

Definition at line 890 of file zend_fibers.c.

◆ ZEND_METHOD() [10/12]

ZEND_METHOD ( Fiber ,
suspend  )

Definition at line 919 of file zend_fibers.c.

◆ ZEND_METHOD() [11/12]

ZEND_METHOD ( Fiber ,
throw  )

Definition at line 983 of file zend_fibers.c.

◆ ZEND_METHOD() [12/12]

ZEND_METHOD ( FiberError ,
__construct  )

Definition at line 1095 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

Definition at line 180 of file zend_fibers.c.

◆ zend_fiber_switch_blocking

ZEND_TLS uint32_t zend_fiber_switch_blocking = 0

Definition at line 187 of file zend_fibers.c.