Skip to content

Commit 5d4f055

Browse files
committed
Drop fiber block hooks
Removes the ability for an extension to allow Fiber switching in blocked contexts. See discussion on fdc2274.
1 parent b642138 commit 5d4f055

File tree

3 files changed

+7
-20
lines changed

3 files changed

+7
-20
lines changed

Zend/zend.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,8 +1010,6 @@ void zend_startup(zend_utility_functions *utility_functions) /* {{{ */
10101010
tsrm_set_new_thread_end_handler(zend_new_thread_end_handler);
10111011
tsrm_set_shutdown_handler(zend_interned_strings_dtor);
10121012
#endif
1013-
1014-
zend_fiber_startup();
10151013
}
10161014
/* }}} */
10171015

Zend/zend_fibers.c

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,6 @@ static zend_function zend_fiber_function = { ZEND_INTERNAL_FUNCTION };
102102

103103
ZEND_TLS uint32_t zend_fiber_switch_blocking = 0;
104104

105-
ZEND_API void (*zend_fiber_switch_block)(void);
106-
ZEND_API void (*zend_fiber_switch_unblock)(void);
107-
ZEND_API bool (*zend_fiber_switch_blocked)(void);
108-
109105
#define ZEND_FIBER_DEFAULT_PAGE_SIZE 4096
110106

111107
static size_t zend_fiber_get_page_size(void)
@@ -241,18 +237,18 @@ static ZEND_NORETURN void zend_fiber_trampoline(boost_context_data data)
241237
abort();
242238
}
243239

244-
static void fiber_switch_block(void)
240+
ZEND_API void zend_fiber_switch_block(void)
245241
{
246242
++zend_fiber_switch_blocking;
247243
}
248244

249-
static void fiber_switch_unblock(void)
245+
ZEND_API void zend_fiber_switch_unblock(void)
250246
{
251247
ZEND_ASSERT(zend_fiber_switch_blocking && "Fiber switching was not blocked");
252248
--zend_fiber_switch_blocking;
253249
}
254250

255-
static bool fiber_switch_blocked(void)
251+
ZEND_API bool zend_fiber_switch_blocked(void)
256252
{
257253
return zend_fiber_switch_blocking;
258254
}
@@ -798,13 +794,6 @@ void zend_register_fiber_ce(void)
798794
zend_ce_fiber_error->create_object = zend_ce_error->create_object;
799795
}
800796

801-
void zend_fiber_startup(void)
802-
{
803-
zend_fiber_switch_block = fiber_switch_block;
804-
zend_fiber_switch_unblock = fiber_switch_unblock;
805-
zend_fiber_switch_blocked = fiber_switch_blocked;
806-
}
807-
808797
void zend_fiber_init(void)
809798
{
810799
zend_fiber_context *context = ecalloc(1, sizeof(zend_fiber_context));

Zend/zend_fibers.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,10 @@ typedef enum {
4848
} zend_fiber_transfer_flag;
4949

5050
void zend_register_fiber_ce(void);
51-
void zend_fiber_startup(void);
5251
void zend_fiber_init(void);
5352
void zend_fiber_shutdown(void);
5453

5554
extern ZEND_API zend_class_entry *zend_ce_fiber;
56-
extern ZEND_API void (*zend_fiber_switch_block)(void);
57-
extern ZEND_API void (*zend_fiber_switch_unblock)(void);
58-
extern ZEND_API bool (*zend_fiber_switch_blocked)(void);
5955

6056
typedef struct _zend_fiber zend_fiber;
6157
typedef struct _zend_fiber_context zend_fiber_context;
@@ -130,6 +126,10 @@ ZEND_API bool zend_fiber_init_context(zend_fiber_context *context, void *kind, z
130126
ZEND_API void zend_fiber_destroy_context(zend_fiber_context *context);
131127
ZEND_API void zend_fiber_switch_context(zend_fiber_transfer *transfer);
132128

129+
ZEND_API void zend_fiber_switch_block(void);
130+
ZEND_API void zend_fiber_switch_unblock(void);
131+
ZEND_API bool zend_fiber_switch_blocked(void);
132+
133133
END_EXTERN_C()
134134

135135
static zend_always_inline zend_fiber *zend_fiber_from_context(zend_fiber_context *context)

0 commit comments

Comments
 (0)