Skip to content
14 changes: 12 additions & 2 deletions mssql_python/pybind/connection/connection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,12 @@ void Connection::commit() {
}
updateLastUsed();
LOG("Committing transaction");
SQLRETURN ret = SQLEndTran_ptr(SQL_HANDLE_DBC, _dbcHandle->get(), SQL_COMMIT);
SQLRETURN ret;
{
// Release the GIL during the blocking SQLEndTran network round-trip.
py::gil_scoped_release release;
ret = SQLEndTran_ptr(SQL_HANDLE_DBC, _dbcHandle->get(), SQL_COMMIT);
}
checkError(ret);
}

Expand All @@ -201,7 +206,12 @@ void Connection::rollback() {
}
updateLastUsed();
LOG("Rolling back transaction");
SQLRETURN ret = SQLEndTran_ptr(SQL_HANDLE_DBC, _dbcHandle->get(), SQL_ROLLBACK);
SQLRETURN ret;
{
// Release the GIL during the blocking SQLEndTran network round-trip.
py::gil_scoped_release release;
ret = SQLEndTran_ptr(SQL_HANDLE_DBC, _dbcHandle->get(), SQL_ROLLBACK);
}
checkError(ret);
}

Expand Down
Loading
Loading