diff options
author | unknown <serg@serg.mylan> | 2003-10-29 08:33:31 +0100 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2003-10-29 08:33:31 +0100 |
commit | 947536820751c18b423ab2ee08a4ae60dc087c54 (patch) | |
tree | 9fa75f9f5276f63953873255a7e856c2b04b0109 /sql/sql_parse.cc | |
parent | f4dc6486e6ddedb054dfb98a62c046e8206e96a8 (diff) | |
download | mariadb-git-947536820751c18b423ab2ee08a4ae60dc087c54.tar.gz |
followup to max_user_connections fix, keep the count more accurate
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r-- | sql/sql_parse.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index ebcfc2bdec1..e63e85e99c6 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -303,14 +303,13 @@ static int check_for_max_user_connections(USER_CONN *uc) { int error=0; DBUG_ENTER("check_for_max_user_connections"); - + (void) pthread_mutex_lock(&LOCK_user_conn); if (max_user_connections && - max_user_connections <= uc->connections) + max_user_connections < uc->connections) { net_printf(&(current_thd->net),ER_TOO_MANY_USER_CONNECTIONS, uc->user); error=1; - uc->connections--; goto end; } if (uc->user_resources.connections && @@ -324,6 +323,8 @@ static int check_for_max_user_connections(USER_CONN *uc) } uc->conn_per_hour++; end: + if (error) + uc->connections--; // no need for decrease_user_connections() here (void) pthread_mutex_unlock(&LOCK_user_conn); DBUG_RETURN(error); } |