From patchwork Mon Mar 16 11:09:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Hajnoczi X-Patchwork-Id: 11440199 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B68F017E6 for ; Mon, 16 Mar 2020 11:15:26 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8A1D620658 for ; Mon, 16 Mar 2020 11:15:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="f0Rms75S" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8A1D620658 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:37112 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDniP-0004Yq-0M for patchwork-qemu-devel@patchwork.kernel.org; Mon, 16 Mar 2020 07:15:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41343) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDndT-0002au-B4 for qemu-devel@nongnu.org; Mon, 16 Mar 2020 07:10:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDndS-0006Ji-BN for qemu-devel@nongnu.org; Mon, 16 Mar 2020 07:10:19 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:33021 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDndS-000695-1P for qemu-devel@nongnu.org; Mon, 16 Mar 2020 07:10:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584357017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uxXCTSUm4qEqGIe/kdGVyfMNrv3WdFjxFzXGp465pus=; b=f0Rms75S/Lq3cy3SXoVlXZuRAjKQdOlVHPlRN4wDk9qOCxhz2X4QpB3W1rGeYijrAXMnY+ mKWSq37aW2Zd15No7hcqjO+n2tYz6IYcKeUIS4C3BGMpANnWsAZSFYv2daMTbaSKzXTsWs KEiABmVR3fvkTO6aRNYKt9JK/HVK650= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-347-WdD9RWQVMcCq9umLppLKlw-1; Mon, 16 Mar 2020 07:10:15 -0400 X-MC-Unique: WdD9RWQVMcCq9umLppLKlw-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 57598107ACCA; Mon, 16 Mar 2020 11:10:14 +0000 (UTC) Received: from localhost (unknown [10.36.119.36]) by smtp.corp.redhat.com (Postfix) with ESMTP id 540E35C219; Mon, 16 Mar 2020 11:09:58 +0000 (UTC) From: Stefan Hajnoczi To: qemu-devel@nongnu.org Subject: [PATCH v2 0/2] thread: add lock guard macros Date: Mon, 16 Mar 2020 11:09:55 +0000 Message-Id: <20200316110957.449700-1-stefanha@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , =?utf-8?q?Alex_Benn=C3=A9e?= , Markus Armbruster , Stefan Hajnoczi , "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Lock guards automatically call qemu_(rec_)mutex_unlock() when returning from a function or leaving leaving a lexical scope. This simplifies code and eliminates leaks (especially in error code paths). This series adds lock guards for QemuMutex and QemuRecMutex. It does not convert the entire tree but includes example conversions. Stefan Hajnoczi (2): lockable: add lock guards lockable: add QemuRecMutex support include/qemu/lockable.h | 67 +++++++++++++++++++++++++++++++++++++++++ plugins/core.c | 7 ++--- plugins/loader.c | 16 +++++----- util/qemu-timer.c | 23 +++++++------- 4 files changed, 89 insertions(+), 24 deletions(-)