Branch: Tag:

2016-01-08

2016-01-08 14:23:51 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Mysql: Don't allow threads during mysql_error().

Remove MYSQL_{,DIS}ALLOW() wrapper around all calls to mysql_error(), it
doesn't involve I/O, so the wrapper only adds quite a bit of overhead.

435:    MYSQL_DISALLOW();    if (res) {    const char *err; -  MYSQL_ALLOW(); +     err = mysql_error(mysql); -  MYSQL_DISALLOW(); +     Pike_error("Setting the charset failed: %s\n", err);    }   
583:       if (!socket) {    const char *err; -  MYSQL_ALLOW(); -  err = mysql_error (mysql); -  MYSQL_DISALLOW(); +  err = mysql_error(mysql); +     Pike_error("Mysql.mysql(): Couldn't %s to SQL-server: %s\n",    reconnect ? "reconnect" : "connect", err);    }
972:    */   PIKEFUN string error()   { -  MYSQL *mysql; +     const char *error_msg; -  +  error_msg = mysql_error(PIKE_MYSQL->mysql);    -  mysql = PIKE_MYSQL->mysql; -  -  MYSQL_ALLOW(); -  -  error_msg = mysql_error(mysql); -  -  MYSQL_DISALLOW(); -  +     pop_n_elems(args);       if (error_msg && *error_msg) {
1068:       if (tmp) {    const char *err; -  -  MYSQL_ALLOW(); +     err = mysql_error(mysql); -  MYSQL_DISALLOW(); +        Pike_error("Mysql.mysql->select_db(): Couldn't select database \"%s\" (%s)\n",    database->str, err);
1132:       if (tmp) {    const char *err; -  -  MYSQL_ALLOW(); +     err = mysql_error(mysql); -  MYSQL_DISALLOW(); +        if (sp[-args].u.string->len <= 512) {    Pike_error("%s(): Query \"%s\" failed (%s)\n",
1166:       if (err) {    const char *msg; -  MYSQL_ALLOW(); +     msg = mysql_error(mysql); -  MYSQL_DISALLOW(); +     Pike_error("%s(): Couldn't create result for query (%s)\n",    name, msg);    }
1522:       if (!result) {    const char *err; -  -  MYSQL_ALLOW(); -  +     err = mysql_error(mysql);    -  MYSQL_DISALLOW(); -  +     Pike_error("Mysql.mysql->list_dbs(): Cannot list databases: %s\n", err);    }   
1578:       if (!result) {    const char *err; -  -  MYSQL_ALLOW(); -  +     err = mysql_error(mysql);    -  MYSQL_DISALLOW(); -  +     Pike_error("Mysql.mysql->list_tables(): Cannot list tables: %s\n", err);    }   
1710:       if (!result) {    const char *err; -  -  MYSQL_ALLOW(); -  +     err = mysql_error(mysql);    -  MYSQL_DISALLOW(); -  +     Pike_error("Mysql.mysql->list_fields(): Cannot list fields: %s\n", err);    }   
1758:       if (!result) {    const char *err; -  -  MYSQL_ALLOW(); -  +     err = mysql_error(mysql);    -  MYSQL_DISALLOW(); -  +     Pike_error("Mysql.mysql->list_processes(): Cannot list processes: %s\n", err);    }