diff options
author | Dmitry Stogov <dmitry@php.net> | 2008-01-22 09:27:48 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2008-01-22 09:27:48 +0000 |
commit | 71592cec0684d376df3fc91645e98fb9679edcd5 (patch) | |
tree | 7d05ba19e5e467fcab54952c23b8069275394803 /Zend/zend_builtin_functions.c | |
parent | 2be1ae5415f3087b662ac9ba6f84bb82db59c0d2 (diff) | |
download | php-git-71592cec0684d376df3fc91645e98fb9679edcd5.tar.gz |
Added garbage collector
Diffstat (limited to 'Zend/zend_builtin_functions.c')
-rw-r--r-- | Zend/zend_builtin_functions.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 9fcc722a37..f64082a307 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -85,6 +85,10 @@ static ZEND_FUNCTION(zend_test_func); static ZEND_FUNCTION(zend_thread_id); #endif #endif +static ZEND_FUNCTION(gc_collect_cycles); +static ZEND_FUNCTION(gc_enabled); +static ZEND_FUNCTION(gc_enable); +static ZEND_FUNCTION(gc_disable); #include "zend_arg_defs.c" @@ -148,6 +152,10 @@ static const zend_function_entry builtin_functions[] = { ZEND_FE(zend_thread_id, NULL) #endif #endif + ZEND_FE(gc_collect_cycles, NULL) + ZEND_FE(gc_enabled, NULL) + ZEND_FE(gc_enable, NULL) + ZEND_FE(gc_disable, NULL) { NULL, NULL, NULL } }; @@ -166,6 +174,38 @@ ZEND_FUNCTION(zend_version) } /* }}} */ +/* {{{ proto int gc_collect_cycles(void) + Forces collection of any existing garbage cycles. + Returns number of freed zvals */ +ZEND_FUNCTION(gc_collect_cycles) +{ + RETURN_LONG(gc_collect_cycles(TSRMLS_C)); +} +/* }}} */ + +/* {{{ proto void gc_enabled(void) + Returns status of the circular reference collector */ +ZEND_FUNCTION(gc_enabled) +{ + RETURN_BOOL(GC_G(gc_enabled)); +} +/* }}} */ + +/* {{{ proto void gc_enable(void) + Activates the circular reference collector */ +ZEND_FUNCTION(gc_enable) +{ + zend_alter_ini_entry("zend.enable_gc", sizeof("zend.enable_gc"), "1", sizeof("1")-1, ZEND_INI_USER, ZEND_INI_STAGE_RUNTIME); +} +/* }}} */ + +/* {{{ proto void gc_disable(void) + Deactivates the circular reference collector */ +ZEND_FUNCTION(gc_disable) +{ + zend_alter_ini_entry("zend.enable_gc", sizeof("zend.enable_gc"), "0", sizeof("0")-1, ZEND_INI_USER, ZEND_INI_STAGE_RUNTIME); +} +/* }}} */ /* {{{ proto int func_num_args(void) Get the number of arguments that were passed to the function */ |