+function end_flush() {
+ global $Ajax, $transaction_level;
+
+ if (isset($Ajax))
+ $Ajax->run();
+ // flush all output buffers (works also with exit inside any div levels)
+ while(ob_get_level()) ob_end_flush();
+
+ // if any transaction was aborted unexpectedly rollback changes
+ cancel_transaction();