From nobody Sun Feb 8 07:08:07 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 153174752698143.15096510991816; Mon, 16 Jul 2018 06:25:26 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7B320A53AA; Mon, 16 Jul 2018 13:25:25 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 44F062010D58; Mon, 16 Jul 2018 13:25:25 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id ED7683FCC0; Mon, 16 Jul 2018 13:25:24 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6GDP7tG028391 for ; Mon, 16 Jul 2018 09:25:07 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9CA212027047; Mon, 16 Jul 2018 13:25:07 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id A8DFB2026D65; Mon, 16 Jul 2018 13:25:06 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Mon, 16 Jul 2018 14:24:21 +0100 Message-Id: <20180716132423.10354-36-berrange@redhat.com> In-Reply-To: <20180716132423.10354-1-berrange@redhat.com> References: <20180716132423.10354-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [go PATCH 35/37] error: remove GetLastError() function X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.25 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 16 Jul 2018 13:25:26 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 The virGetLastError() function fetches the last reported error from a thread local variable. Goroutines may be arbitrarily switched between OS threads between the libvirt API call and the virGetLastError() call. Thus this API is impossible to use safely and must be removed. All the Go APIs return an error object directly so nothing should need the GetLastError() binding anyway. Signed-off-by: Daniel P. Berrang=C3=A9 --- api_test.go | 1 + error.go | 20 -------------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/api_test.go b/api_test.go index a16a1eb..564bdd4 100644 --- a/api_test.go +++ b/api_test.go @@ -68,6 +68,7 @@ var ( /* Only needed at C level */ "virCopyLastError", "virFreeError", + "virGetLastError", "virGetLastErrorMessage", "virGetLastErrorCode", "virGetLastErrorDomain", diff --git a/error.go b/error.go index b8e2900..37fefc1 100644 --- a/error.go +++ b/error.go @@ -594,26 +594,6 @@ func makeError(err *C.virError) Error { return ret } =20 -func GetLastError() Error { - err :=3D C.virGetLastError() - if err =3D=3D nil { - return Error{ - Code: ERR_OK, - Domain: FROM_NONE, - Message: "Missing error", - Level: ERR_NONE, - } - } - virErr :=3D Error{ - Code: ErrorNumber(err.code), - Domain: ErrorDomain(err.domain), - Message: C.GoString(err.message), - Level: ErrorLevel(err.level), - } - C.virResetError(err) - return virErr -} - func GetNotImplementedError(apiname string) Error { return Error{ Code: ERR_NO_SUPPORT, --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list