--- Wez Furlong <[EMAIL PROTECTED]> wrote: > Looking at the opcode handler for exit, it looks > like you can call > zend_bailout() to terminate the request. > > Note that since exit is an opcode and not a > function, > call_user_function won't work.
Thank you very much. A similar thought occurred to me (the fact that the manual refers to die/exit as keywords and not functions) shortly after writing the earlier mail. Since this morning's letter, I chased down the php die and exit keywords to the (f)lex and yacc/bison files. There they turned into the T_EXIT define which turned into a number 297 (the opcode?). This translated in the language parser yacc file to a call to the internal zend_do_exit() function. This function takes two znode pointers, and pulls a pointer to the next zend_op struct from the active_op_array. It populates the zend_op struct with information from one of the znode pointers, fills one of the members with the ZEND_EXIT opcode, fills other znode with some other information and then returns. I'm guessing that this population then triggers the exit as the next active_op_array is read. It was around then that I was becoming thoroughly confused figuring out how to call this function directly. zend_bailout() is a macro defined to equate to: _zend_bailout(__FILE__, __LINE__) Am I right in assuming that the __FILE__ and __LINE__ macros would therefore be filled automatically, and that this is all that's necessary? If so: Many thanks once again. Will try it this afternoon. Cris ___________________________________________________________ALL-NEW Yahoo! Messenger - sooooo many all-new ways to express yourself http://uk.messenger.yahoo.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php