message: Support ob_* in nested coroutine.
diff: @@ -203,16 +203,23 @@ int sw_coro_create(zend_fcall_info_cache *fci_cache, zval **argv, int argc, zval
  COROG.error = 0;
  COROG.coro_num++;
  - // clear output control global
  - while (OG(active))
  + zend_output_globals *coro_output_globals_ptr = NULL;
  + if (OG(active)) // save the current OG
  {
  - if (php_output_end() == FAILURE)
  - {
  - break;
  + coro_output_globals_ptr = (zend_output_globals *) emalloc(sizeof(zend_output_globals));
  + memcpy(coro_output_globals_ptr, &output_globals, sizeof(zend_output_globals));
  + php_output_activate();
  }
  +
  + int ret = coroutine_create(sw_coro_func, (void*) &php_args);
  +
  + if (coro_output_globals_ptr) // resume the parent OG
  + {
  + memcpy(&output_globals, coro_output_globals_ptr, sizeof(zend_output_globals));
  + efree(coro_output_globals_ptr);
  }
  - return coroutine_create(sw_coro_func, (void*) &php_args);
  + return ret;
  }
  void sw_coro_save(zval *return_value, php_context *sw_current_context)
  