mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Encapsulate reference-counting primitives.
Prohibit direct update of GC_REFCOUNT(), GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF() shoukf be instead. Added mactros to validate reference-counting (disabled for now). These macros are going to be used to eliminate race-condintions during reference-counting on data shared between threads.
This commit is contained in:
parent
1ab0d820da
commit
49ea143bbd
66 changed files with 408 additions and 345 deletions
|
@ -72,7 +72,7 @@ END_EXTERN_C()
|
|||
|
||||
static zend_always_inline void zend_object_release(zend_object *obj)
|
||||
{
|
||||
if (--GC_REFCOUNT(obj) == 0) {
|
||||
if (GC_DELREF(obj) == 0) {
|
||||
zend_objects_store_del(obj);
|
||||
} else if (UNEXPECTED(GC_MAY_LEAK((zend_refcounted*)obj))) {
|
||||
gc_possible_root((zend_refcounted*)obj);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue