summaryrefslogtreecommitdiff
path: root/Zend/zend_builtin_functions.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2008-01-22 09:27:48 +0000
committerDmitry Stogov <dmitry@php.net>2008-01-22 09:27:48 +0000
commit71592cec0684d376df3fc91645e98fb9679edcd5 (patch)
tree7d05ba19e5e467fcab54952c23b8069275394803 /Zend/zend_builtin_functions.c
parent2be1ae5415f3087b662ac9ba6f84bb82db59c0d2 (diff)
downloadphp-git-71592cec0684d376df3fc91645e98fb9679edcd5.tar.gz
Added garbage collector
Diffstat (limited to 'Zend/zend_builtin_functions.c')
-rw-r--r--Zend/zend_builtin_functions.c40
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 */