[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/sapi/fpm/config.m4 branches/PHP_5_3/sapi/fpm/fpm/fpm.c branches/PHP_5_3/sapi/fpm/fpm/fpm.h branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c
fat Sun, 14 Nov 2010 22:01:34 + Revision: http://svn.php.net/viewvc?view=revisionrevision=305341 Log: - Fixed #52691 (allow multiple instance of FPM using a custom prefix) Bug: http://bugs.php.net/52691 (Analyzed) allow multiple instance of FPM using a custom prefix Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/sapi/fpm/config.m4 U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.h U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.h U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_php.h U php/php-src/branches/PHP_5_3/sapi/fpm/php-fpm.8.in U php/php-src/branches/PHP_5_3/sapi/fpm/php-fpm.conf.in U php/php-src/trunk/sapi/fpm/config.m4 U php/php-src/trunk/sapi/fpm/fpm/fpm.c U php/php-src/trunk/sapi/fpm/fpm/fpm.h U php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c U php/php-src/trunk/sapi/fpm/fpm/fpm_conf.h U php/php-src/trunk/sapi/fpm/fpm/fpm_main.c U php/php-src/trunk/sapi/fpm/fpm/fpm_php.h U php/php-src/trunk/sapi/fpm/php-fpm.8.in U php/php-src/trunk/sapi/fpm/php-fpm.conf.in Modified: php/php-src/branches/PHP_5_3/NEWS === --- php/php-src/branches/PHP_5_3/NEWS 2010-11-14 20:30:23 UTC (rev 305340) +++ php/php-src/branches/PHP_5_3/NEWS 2010-11-14 22:01:34 UTC (rev 305341) @@ -14,6 +14,8 @@ (Andrey) - Improved support for is_link and related functions on Windows. (Pierre) +- Added '-p/--prefix' to php-fpm to use a custom prefix and run multiple + instances. (fat) - Added support for the ( and ) delimiters/separators to DateTime::createFromFormat(). (Derick) - Added custom process title for FPM. (fat) Modified: php/php-src/branches/PHP_5_3/sapi/fpm/config.m4 === --- php/php-src/branches/PHP_5_3/sapi/fpm/config.m4 2010-11-14 20:30:23 UTC (rev 305340) +++ php/php-src/branches/PHP_5_3/sapi/fpm/config.m4 2010-11-14 22:01:34 UTC (rev 305341) @@ -603,6 +603,8 @@ PHP_SUBST_OLD(php_fpm_sysconfdir) php_fpm_localstatedir=`eval echo $localstatedir` PHP_SUBST_OLD(php_fpm_localstatedir) + php_fpm_prefix=`eval echo $prefix` + PHP_SUBST_OLD(php_fpm_prefix) AC_DEFINE_UNQUOTED(PHP_FPM_USER, $php_fpm_user, [fpm user name]) AC_DEFINE_UNQUOTED(PHP_FPM_GROUP, $php_fpm_group, [fpm group name]) Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c === --- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c 2010-11-14 20:30:23 UTC (rev 305340) +++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c 2010-11-14 22:01:34 UTC (rev 305341) @@ -23,11 +23,12 @@ struct fpm_globals_s fpm_globals; -int fpm_init(int argc, char **argv, char *config, struct event_base **base) /* {{{ */ +int fpm_init(int argc, char **argv, char *config, char *prefix, struct event_base **base) /* {{{ */ { fpm_globals.argc = argc; fpm_globals.argv = argv; fpm_globals.config = config; + fpm_globals.prefix = prefix; if (0 fpm_php_init_main()|| 0 fpm_stdio_init_main()|| Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.h === --- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.h 2010-11-14 20:30:23 UTC (rev 305340) +++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.h 2010-11-14 22:01:34 UTC (rev 305341) @@ -10,13 +10,14 @@ #include event.h int fpm_run(int *max_requests, struct event_base *base); -int fpm_init(int argc, char **argv, char *config, struct event_base **base); +int fpm_init(int argc, char **argv, char *config, char *prefix, struct event_base **base); struct fpm_globals_s { pid_t parent_pid; int argc; char **argv; char *config; + char *prefix; int running_children; int error_log_fd; int log_level; Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c === --- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c 2010-11-14 20:30:23 UTC (rev 305340) +++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c 2010-11-14 22:01:34 UTC (rev 305341) @@ -74,6 +74,7 @@ }; static struct ini_value_parser_s ini_fpm_pool_options[] = { + { prefix, fpm_conf_set_string, WPO(prefix) }, { user, fpm_conf_set_string, WPO(user) }, { group, fpm_conf_set_string, WPO(group) }, { chroot, fpm_conf_set_string, WPO(chroot) }, @@ -114,6 +115,29 @@ } /* }}} */ +static int fpm_conf_expand_pool_name(char **value) { + char *token; + + if (!value || !*value) { + return 0; + } + + while ((token = strstr(*value, $pool))) { + char *buf; + char *p1 = *value; + char *p2 = token + strlen($pool); + if (!current_wp ||
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/sapi/fpm/fpm/fpm.c branches/PHP_5_3/sapi/fpm/fpm/fpm.h branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.h branches/PHP_5_3/
fat Sun, 14 Nov 2010 22:22:07 + Revision: http://svn.php.net/viewvc?view=revisionrevision=305342 Log: - extend the 'i-t' fpm argument to dump configuration file when called twice (-tt) Changed paths: U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.h U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.h U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/zlog.c U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/zlog.h U php/php-src/branches/PHP_5_3/sapi/fpm/php-fpm.8.in U php/php-src/trunk/sapi/fpm/fpm/fpm.c U php/php-src/trunk/sapi/fpm/fpm/fpm.h U php/php-src/trunk/sapi/fpm/fpm/fpm_conf.c U php/php-src/trunk/sapi/fpm/fpm/fpm_conf.h U php/php-src/trunk/sapi/fpm/fpm/fpm_main.c U php/php-src/trunk/sapi/fpm/fpm/zlog.c U php/php-src/trunk/sapi/fpm/fpm/zlog.h U php/php-src/trunk/sapi/fpm/php-fpm.8.in Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c === --- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c 2010-11-14 22:01:34 UTC (rev 305341) +++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.c 2010-11-14 22:22:07 UTC (rev 305342) @@ -23,16 +23,16 @@ struct fpm_globals_s fpm_globals; -int fpm_init(int argc, char **argv, char *config, char *prefix, struct event_base **base) /* {{{ */ +int fpm_init(int argc, char **argv, char *config, char *prefix, int test_conf, struct event_base **base) /* {{{ */ { fpm_globals.argc = argc; fpm_globals.argv = argv; fpm_globals.config = config; fpm_globals.prefix = prefix; - if (0 fpm_php_init_main()|| + if (0 fpm_php_init_main() || 0 fpm_stdio_init_main()|| - 0 fpm_conf_init_main() || + 0 fpm_conf_init_main(test_conf)|| 0 fpm_unix_init_main() || 0 fpm_pctl_init_main() || 0 fpm_env_init_main() || Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.h === --- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.h 2010-11-14 22:01:34 UTC (rev 305341) +++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm.h 2010-11-14 22:22:07 UTC (rev 305342) @@ -10,7 +10,7 @@ #include event.h int fpm_run(int *max_requests, struct event_base *base); -int fpm_init(int argc, char **argv, char *config, char *prefix, struct event_base **base); +int fpm_init(int argc, char **argv, char *config, char *prefix, int test_conf, struct event_base **base); struct fpm_globals_s { pid_t parent_pid; @@ -24,7 +24,6 @@ int listening_socket; /* for this child */ int max_requests; /* for this child */ int is_child; - int test_conf; }; extern struct fpm_globals_s fpm_globals; Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c === --- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c 2010-11-14 22:01:34 UTC (rev 305341) +++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_conf.c 2010-11-14 22:22:07 UTC (rev 305342) @@ -1105,8 +1105,69 @@ } /* }}} */ -int fpm_conf_init_main() /* {{{ */ +static void fpm_conf_dump() /* {{{ */ { + struct fpm_worker_pool_s *wp; + + zlog(ZLOG_NOTICE, [General]); + zlog(ZLOG_NOTICE, \tpid = %s, STR2STR(fpm_global_config.pid_file)); + zlog(ZLOG_NOTICE, \tdaemonize = %s, BOOL2STR(fpm_global_config.daemonize)); + zlog(ZLOG_NOTICE, \terror_log = %s, STR2STR(fpm_global_config.error_log)); + zlog(ZLOG_NOTICE, \tlog_level = %s, zlog_get_level_name()); + zlog(ZLOG_NOTICE, \tprocess_control_timeout = %ds, fpm_global_config.process_control_timeout); + zlog(ZLOG_NOTICE, \temergency_restart_interval = %ds, fpm_global_config.emergency_restart_interval); + zlog(ZLOG_NOTICE, \temergency_restart_threshold = %d, fpm_global_config.emergency_restart_threshold); + zlog(ZLOG_NOTICE, ); + + for (wp = fpm_worker_all_pools; wp; wp = wp-next) { + struct key_value_s *kv; + if (!wp-config) continue; + zlog(ZLOG_NOTICE, [%s], STR2STR(wp-config-name)); + zlog(ZLOG_NOTICE, \tprefix = %s, STR2STR(wp-config-prefix)); + zlog(ZLOG_NOTICE, \tuser = %s, STR2STR(wp-config-user)); + zlog(ZLOG_NOTICE, \tgroup = %s, STR2STR(wp-config-group)); + zlog(ZLOG_NOTICE, \tchroot = %s, STR2STR(wp-config-chroot)); + zlog(ZLOG_NOTICE, \tchdir = %s, STR2STR(wp-config-chdir)); + zlog(ZLOG_NOTICE, \tlisten = %s, STR2STR(wp-config-listen_address)); + zlog(ZLOG_NOTICE, \tlisten.backlog = %d, wp-config-listen_backlog); + zlog(ZLOG_NOTICE, \tlisten.owner = %s, STR2STR(wp-config-listen_owner)); + zlog(ZLOG_NOTICE, \tlisten.group = %s, STR2STR(wp-config-listen_group)); + zlog(ZLOG_NOTICE, \tlisten.mode = %s, STR2STR(wp-config-listen_mode)); + zlog(ZLOG_NOTICE, \tlisten.allowed_clients = %s,
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/interbase/config.w32 branches/PHP_5_3/ext/pdo_firebird/config.w32 trunk/ext/interbase/config.w32 trunk/ext/pdo_firebird/config.w32
pajoye Sun, 14 Nov 2010 22:40:30 + Revision: http://svn.php.net/viewvc?view=revisionrevision=305343 Log: - allow firebird header to be in the normal deps directory and restore firebird support on win (5.3.4+) Changed paths: U php/php-src/branches/PHP_5_3/ext/interbase/config.w32 U php/php-src/branches/PHP_5_3/ext/pdo_firebird/config.w32 U php/php-src/trunk/ext/interbase/config.w32 U php/php-src/trunk/ext/pdo_firebird/config.w32 Modified: php/php-src/branches/PHP_5_3/ext/interbase/config.w32 === --- php/php-src/branches/PHP_5_3/ext/interbase/config.w32 2010-11-14 22:22:07 UTC (rev 305342) +++ php/php-src/branches/PHP_5_3/ext/interbase/config.w32 2010-11-14 22:40:30 UTC (rev 305343) @@ -5,7 +5,8 @@ if (PHP_INTERBASE != no) { - if (CHECK_HEADER_ADD_INCLUDE(ibase.h, CFLAGS_INTERBASE, PHP_PHP_BUILD + \\interbase\\include; + PHP_INTERBASE) + if (CHECK_HEADER_ADD_INCLUDE(ibase.h, CFLAGS_INTERBASE, + PHP_PHP_BUILD + \\include\\interbase; + PHP_PHP_BUILD + \\interbase\\include; + PHP_INTERBASE) (CHECK_LIB(fbclient_ms.lib, interbase, PHP_PHP_BUILD + \\interbase\\lib_ms; + PHP_INTERBASE) || CHECK_LIB(gds32_ms.lib, interbase, PHP_PHP_BUILD + \\interbase\\lib_ms; + PHP_INTERBASE))) { Modified: php/php-src/branches/PHP_5_3/ext/pdo_firebird/config.w32 === --- php/php-src/branches/PHP_5_3/ext/pdo_firebird/config.w322010-11-14 22:22:07 UTC (rev 305342) +++ php/php-src/branches/PHP_5_3/ext/pdo_firebird/config.w322010-11-14 22:40:30 UTC (rev 305343) @@ -7,7 +7,9 @@ if ((CHECK_LIB(fbclient_ms.lib, pdo_firebird, PHP_PHP_BUILD + \\interbase\\lib_ms; + PHP_PDO_FIREBIRD) || CHECK_LIB(gds32_ms.lib, pdo_firebird, PHP_PHP_BUILD + \\interbase\\lib_ms; + PHP_PDO_FIREBIRD) - ) CHECK_HEADER_ADD_INCLUDE(ibase.h, CFLAGS_PDO_FIREBIRD, PHP_PHP_BUILD + \\interbase\\include; + PHP_PDO_FIREBIRD)) { + ) CHECK_HEADER_ADD_INCLUDE(ibase.h, CFLAGS_PDO_FIREBIRD, + PHP_PHP_BUILD + \\include\\interbase; + PHP_PHP_BUILD + \\interbase\\include; + PHP_PDO_FIREBIRD) + ) { EXTENSION(pdo_firebird, pdo_firebird.c firebird_driver.c firebird_statement.c); } else { Modified: php/php-src/trunk/ext/interbase/config.w32 === --- php/php-src/trunk/ext/interbase/config.w32 2010-11-14 22:22:07 UTC (rev 305342) +++ php/php-src/trunk/ext/interbase/config.w32 2010-11-14 22:40:30 UTC (rev 305343) @@ -5,7 +5,8 @@ if (PHP_INTERBASE != no) { - if (CHECK_HEADER_ADD_INCLUDE(ibase.h, CFLAGS_INTERBASE, PHP_PHP_BUILD + \\interbase\\include; + PHP_INTERBASE) + if (CHECK_HEADER_ADD_INCLUDE(ibase.h, CFLAGS_INTERBASE, + PHP_PHP_BUILD + \\include\\interbase; + PHP_PHP_BUILD + \\interbase\\include; + PHP_INTERBASE) (CHECK_LIB(fbclient_ms.lib, interbase, PHP_PHP_BUILD + \\interbase\\lib_ms; + PHP_INTERBASE) || CHECK_LIB(gds32_ms.lib, interbase, PHP_PHP_BUILD + \\interbase\\lib_ms; + PHP_INTERBASE))) { Modified: php/php-src/trunk/ext/pdo_firebird/config.w32 === --- php/php-src/trunk/ext/pdo_firebird/config.w32 2010-11-14 22:22:07 UTC (rev 305342) +++ php/php-src/trunk/ext/pdo_firebird/config.w32 2010-11-14 22:40:30 UTC (rev 305343) @@ -7,7 +7,9 @@ if ((CHECK_LIB(fbclient_ms.lib, pdo_firebird, PHP_PHP_BUILD + \\interbase\\lib_ms; + PHP_PDO_FIREBIRD) || CHECK_LIB(gds32_ms.lib, pdo_firebird, PHP_PHP_BUILD + \\interbase\\lib_ms; + PHP_PDO_FIREBIRD) - ) CHECK_HEADER_ADD_INCLUDE(ibase.h, CFLAGS_PDO_FIREBIRD, PHP_PHP_BUILD + \\interbase\\include; + PHP_PDO_FIREBIRD)) { + ) CHECK_HEADER_ADD_INCLUDE(ibase.h, CFLAGS_PDO_FIREBIRD, + PHP_PHP_BUILD + \\include\\interbase; + PHP_PHP_BUILD + \\interbase\\include; + PHP_PDO_FIREBIRD) + ) { EXTENSION(pdo_firebird, pdo_firebird.c firebird_driver.c firebird_statement.c); } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/trunk/ UPGRADING.INTERNALS ext/standard/basic_functions.c ext/standard/basic_functions.h main/php_streams.h main/streams/memory.c main/streams/streams.c
cataphract Mon, 15 Nov 2010 03:05:32 + Revision: http://svn.php.net/viewvc?view=revisionrevision=305346 Log: - Added leak_variable() function. - Added mechanism to force outer streams to be closed before their inner ones. - Fixed temp:// streams only handling correctly (through an ad hoc mechanism) reverse closing order when the inner stream is of type memory. Changed paths: U php/php-src/trunk/UPGRADING.INTERNALS U php/php-src/trunk/ext/standard/basic_functions.c U php/php-src/trunk/ext/standard/basic_functions.h U php/php-src/trunk/main/php_streams.h U php/php-src/trunk/main/streams/memory.c U php/php-src/trunk/main/streams/streams.c Modified: php/php-src/trunk/UPGRADING.INTERNALS === --- php/php-src/trunk/UPGRADING.INTERNALS 2010-11-15 01:57:16 UTC (rev 305345) +++ php/php-src/trunk/UPGRADING.INTERNALS 2010-11-15 03:05:32 UTC (rev 305346) @@ -8,7 +8,9 @@ c. readlink support d. layout of some core ZE structures (zend_op_array, zend_class_entry, ...) e. Zend\zend_fast_cache.h has been removed - f. API Signature changes + f. streams that enclose private streams + g. leak_variable + h. API Signature changes 1. Internal API changes @@ -68,7 +70,55 @@ Use emalloc, emalloc_rel, efree or efree_rel instead. - f. API Signature changes + f. Streams that enclose private streams +Some streams, like the temp:// stream, may enclose private streams. If the +outer stream leaks due to a programming error or is not exposed through a +zval (and therefore is not deleted when all the zvals are gone), it will +be destroyed on shutdown. +The problem is that the outer usually wants itself to close the inner stream, +so that it may do any other shutdown action that requires the inner stream to +be live (e.g. commit data to it). If the outer stream is exposed through a +zval and the inner one isn't, this is not a problem because the outer stream +will be freed when the zval is destroyed, which happens before the resources +are destroyed on shutdown. +On resource list shutdown, the cleanup happens in reverse order of resource +creation, so if the inner stream was created in the opener of the outer stream, +it will be destroyed first. +The following functions were added to the streams API to force a predictable +destruction order: + +PHPAPI php_stream *php_stream_encloses(php_stream *enclosing, php_stream *enclosed); +#define php_stream_free_enclosed(stream_enclosed, close_options) +PHPAPI int _php_stream_free_enclosed(php_stream *stream_enclosed, int close_options TSRMLS_DC); + +Additionally, the following member was added to php_stream: + + struct _php_stream *enclosing_stream; + +and the following macro was added: + +#define PHP_STREAM_FREE_IGNORE_ENCLOSING 32 + +The function php_stream_encloses declares the first stream encloses the second. +This has the effect that, when the inner stream is closed from a resource +destructor it will abort and try to free its enclosing stream instead. +To prevent this from happening when the inner stream is freed from the outer +stream, the macro php_stream_free_enclosed should be used instead of +php_stream_free/php_stream_close/php_stream_pclose, or the flag +PHP_STREAM_FREE_IGNORE_ENCLOSING should be directly passed to php_stream_free. +The outer stream cannot abstain, in its close callback, from either closing the +inner stream or clear the enclosing_stream pointer in its enclosed stream by +calling php_stream_encloses with the 2nd argument NULL. If this is not done, +there will be problems, so observe this requirement when using +php_stream_encloses. + + g. leak_variable +The function leak_variable(variable [, leak_data]) was added. It is only +available on debug builds. It increments the refcount of a zval or, if the +second argument is true and the variable is either an object or a resource +it increments the refcounts of those objects instead. + + h. API Signature changes . zend_list_insert ZEND_API int zend_list_insert(void *ptr, int type TSRMLS_DC); call: zend_list_insert(a, SOMETYPE TSRMLS_CC); Modified: php/php-src/trunk/ext/standard/basic_functions.c === --- php/php-src/trunk/ext/standard/basic_functions.c 2010-11-15 01:57:16 UTC (rev 305345) +++ php/php-src/trunk/ext/standard/basic_functions.c 2010-11-15 03:05:32 UTC (rev 305346) @@ -853,6 +853,11 @@ #if ZEND_DEBUG ZEND_BEGIN_ARG_INFO(arginfo_config_get_hash, 0) ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_leak_variable, 0, 0, 1) + ZEND_ARG_INFO(0, variable) + ZEND_ARG_INFO(0, leak_data) +ZEND_END_ARG_INFO() #endif #ifdef HAVE_GETLOADAVG @@ -2997,6 +3002,7 @@ PHP_FE(parse_ini_string,arginfo_parse_ini_string) #if ZEND_DEBUG PHP_FE(config_get_hash, arginfo_config_get_hash) + PHP_FE(leak_variable, arginfo_leak_variable)
[PHP-CVS] svn: /php/php-src/trunk/ UPGRADING.INTERNALS
cataphract Mon, 15 Nov 2010 03:22:26 + Revision: http://svn.php.net/viewvc?view=revisionrevision=305347 Log: - Fixed incorrection in UPGRADING.INTERNALS. Changed paths: U php/php-src/trunk/UPGRADING.INTERNALS Modified: php/php-src/trunk/UPGRADING.INTERNALS === --- php/php-src/trunk/UPGRADING.INTERNALS 2010-11-15 03:05:32 UTC (rev 305346) +++ php/php-src/trunk/UPGRADING.INTERNALS 2010-11-15 03:22:26 UTC (rev 305347) @@ -106,11 +106,10 @@ stream, the macro php_stream_free_enclosed should be used instead of php_stream_free/php_stream_close/php_stream_pclose, or the flag PHP_STREAM_FREE_IGNORE_ENCLOSING should be directly passed to php_stream_free. -The outer stream cannot abstain, in its close callback, from either closing the -inner stream or clear the enclosing_stream pointer in its enclosed stream by -calling php_stream_encloses with the 2nd argument NULL. If this is not done, -there will be problems, so observe this requirement when using -php_stream_encloses. +The outer stream cannot abstain, in its close callback, from closing the inner +stream or clear the enclosing_stream pointer in its enclosed stream by calling +php_stream_encloses with the 2nd argument NULL. If this is not done, there will +be problems, so observe this requirement when using php_stream_encloses. g. leak_variable The function leak_variable(variable [, leak_data]) was added. It is only -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] svn: /php/php-src/trunk/ UPGRADING.INTERNALS ext/standard/basic_functions.c ext/standard/basic_functions.h main/php_streams.h main/streams/memory.c main/streams/streams.c
Hi 2010/11/15 Gustavo André dos Santos Lopes cataphr...@php.net: cataphract Mon, 15 Nov 2010 03:05:32 + Revision: http://svn.php.net/viewvc?view=revisionrevision=305346 Log: - Added leak_variable() function. Why do we need a leak_variable() function in a regular build unlike leak() and crash() which are defined in zend_builtin_functions.c in debug mode only or did I miss something here? -- regards, Kalle Sommer Nielsen ka...@php.net -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php