diff --git a/mx_mysql.c b/mx_mysql.c index ca983b0..2894ca7 100644 --- a/mx_mysql.c +++ b/mx_mysql.c @@ -262,14 +262,13 @@ static int mx__mysql_stmt_bind_result(struct mx_mysql_stmt *stmt) static int mx__mysql_stmt_execute(struct mx_mysql_stmt *stmt) { - int res; - assert(stmt); assert(stmt->stmt); - res = mysql_stmt_execute(stmt->stmt); - if (res == 0) - return 0; + do { + if (mysql_stmt_execute(stmt->stmt) == 0) + return 0; + } while (mysql_stmt_errno(stmt->stmt) == ER_LOCK_DEADLOCK); mx_mysql_save_error(mysql_stmt_error(stmt->stmt));