static void conn_autocommit_event(int fd, short event, void *_userdata) { struct maria_status *ms = (struct maria_status *)_userdata; MYSQL *conn = (MYSQL *)ms->data; lua_State *L = ms->L; int errorcode = mysql_errno(conn); if (errorcode) { FAN_RESUME(L, NULL, luamariadb_push_errno(L, ms->conn_data)); UNREF_CO(ms->conn_data); } else { my_bool ret = 0; int status = mysql_autocommit_cont(&ret, conn, ms->status); if (status) { wait_for_status(L, ms->conn_data, conn, status, conn_autocommit_event, ms->extra); } else if (ret == 0) { lua_pushboolean(L, true); FAN_RESUME(L, NULL, 1); UNREF_CO(ms->conn_data); } else { FAN_RESUME(L, NULL, luamariadb_push_errno(L, ms->conn_data)); UNREF_CO(ms->conn_data); } } event_free(ms->event); free(ms); }
void MySQL_Connection::set_autocommit_cont(short event) { proxy_debug(PROXY_DEBUG_MYSQL_PROTOCOL, 6,"event=%d\n", event); async_exit_status = mysql_autocommit_cont(&ret_bool, mysql, mysql_status(event, true)); }