Example #1
0
bool f_mysql_async_connect_completed(CVarRef link_identifier) {
  MySQL* mySQL = MySQL::Get(link_identifier);
  if (!mySQL) {
    raise_warning("supplied argument is not a valid MySQL-Link resource");
    return true;
  }

  MYSQL* conn = mySQL->get();
  if (conn->async_op_status != ASYNC_OP_CONNECT) {
    // Don't warn if we're in UNSET state (ie between queries, etc)
    if (conn->async_op_status != ASYNC_OP_UNSET) {
      raise_warning("runtime/ext_mysql: no pending async connect in progress");
    }
    return true;
  }

  int error = 0;
  auto status = mysql_real_connect_nonblocking_run(conn, &error);
  return status == NET_ASYNC_COMPLETE;
}
Example #2
0
static PyObject* wsql_connection_run_async(wsql_connection *self)
{
    net_async_status status;
    int error;

    CHECK_CONNECTION(self, NULL);
    status = mysql_real_connect_nonblocking_run(&(self->connection), &error);

    if (status == NET_ASYNC_COMPLETE)
    {
        if (error)
        {
            TRACE2("%p, %d", self, error);
            return wsql_raise_error(self);
        }
        self->connected = 1;
    }

    return Py_BuildValue("(iO)", (int)status, Py_None);
}