Skip to content

Commit 3b103f1

Browse files
committed
Allocate a fast thread-safe-resource id for opcache
1 parent 659f55a commit 3b103f1

File tree

5 files changed

+13
-5
lines changed

5 files changed

+13
-5
lines changed

ext/opcache/ZendAccelerator.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ static zend_extension opcache_extension_entry;
109109
zend_accel_globals accel_globals;
110110
#else
111111
int accel_globals_id;
112+
size_t accel_globals_offset;
112113
#endif
113114

114115
/* Points to the structure shared across all PHP processes */
@@ -3162,7 +3163,7 @@ void start_accel_extension(void)
31623163
static int accel_startup(zend_extension *extension)
31633164
{
31643165
#ifdef ZTS
3165-
accel_globals_id = ts_allocate_id(&accel_globals_id, sizeof(zend_accel_globals), (ts_allocate_ctor) accel_globals_ctor, (ts_allocate_dtor) accel_globals_dtor);
3166+
accel_globals_id = ts_allocate_fast_id(&accel_globals_id, &accel_globals_offset, sizeof(zend_accel_globals), (ts_allocate_ctor) accel_globals_ctor, (ts_allocate_dtor) accel_globals_dtor);
31663167
#else
31673168
accel_globals_ctor(&accel_globals);
31683169
#endif

ext/opcache/ZendAccelerator.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,8 +300,9 @@ extern zend_accel_shared_globals *accel_shared_globals;
300300
#define ZCSG(element) (accel_shared_globals->element)
301301

302302
#ifdef ZTS
303-
# define ZCG(v) ZEND_TSRMG(accel_globals_id, zend_accel_globals *, v)
303+
# define ZCG(v) ZEND_TSRMG_FAST(accel_globals_offset, zend_accel_globals *, v)
304304
extern int accel_globals_id;
305+
extern size_t accel_globals_offset;
305306
#else
306307
# define ZCG(v) (accel_globals.v)
307308
extern zend_accel_globals accel_globals;

ext/opcache/jit/zend_jit.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848

4949
#ifdef ZTS
5050
int jit_globals_id;
51+
size_t jit_globals_offset;
5152
#else
5253
zend_jit_globals jit_globals;
5354
#endif
@@ -3701,7 +3702,7 @@ int zend_jit_debug_config(zend_long old_val, zend_long new_val, int stage)
37013702
void zend_jit_init(void)
37023703
{
37033704
#ifdef ZTS
3704-
jit_globals_id = ts_allocate_id(&jit_globals_id, sizeof(zend_jit_globals), (ts_allocate_ctor) zend_jit_globals_ctor, (ts_allocate_dtor) zend_jit_globals_dtor);
3705+
jit_globals_id = ts_allocate_fast_id(&jit_globals_id, &jit_globals_offset, sizeof(zend_jit_globals), (ts_allocate_ctor) zend_jit_globals_ctor, (ts_allocate_dtor) zend_jit_globals_dtor);
37053706
#else
37063707
zend_jit_globals_ctor(&jit_globals);
37073708
#endif

ext/opcache/jit/zend_jit.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,9 @@ typedef struct _zend_jit_globals {
145145
} zend_jit_globals;
146146

147147
#ifdef ZTS
148-
# define JIT_G(v) ZEND_TSRMG(jit_globals_id, zend_jit_globals *, v)
148+
# define JIT_G(v) ZEND_TSRMG_FAST(jit_globals_offset, zend_jit_globals *, v)
149149
extern int jit_globals_id;
150+
extern size_t jit_globals_offset;
150151
#else
151152
# define JIT_G(v) (jit_globals.v)
152153
extern zend_jit_globals jit_globals;

main/main.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@
5151
#include "ext/date/php_date.h"
5252
#include "ext/random/php_random_csprng.h"
5353
#include "ext/random/php_random_zend_utils.h"
54+
#include "ext/opcache/ZendAccelerator.h"
55+
#include "ext/opcache/jit/zend_jit.h"
5456
#include "php_variables.h"
5557
#include "ext/standard/credits.h"
5658
#ifdef PHP_WIN32
@@ -2773,7 +2775,9 @@ PHPAPI void php_reserve_tsrm_memory(void)
27732775
TSRM_ALIGNED_SIZE(zend_mm_globals_size()) +
27742776
TSRM_ALIGNED_SIZE(zend_gc_globals_size()) +
27752777
TSRM_ALIGNED_SIZE(sizeof(php_core_globals)) +
2776-
TSRM_ALIGNED_SIZE(sizeof(sapi_globals_struct))
2778+
TSRM_ALIGNED_SIZE(sizeof(sapi_globals_struct)) +
2779+
TSRM_ALIGNED_SIZE(sizeof(zend_accel_globals)) +
2780+
TSRM_ALIGNED_SIZE(sizeof(zend_jit_globals))
27772781
);
27782782
}
27792783
/* }}} */

0 commit comments

Comments
 (0)