From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 40957 invoked by alias); 15 Nov 2019 18:14:26 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 40946 invoked by uid 89); 15 Nov 2019 18:14:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.3 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1137, HX-Received:9381 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on sourceware.org X-Spam-Level: X-HELO: us-smtp-delivery-1.mimecast.com Received: from us-smtp-1.mimecast.com (HELO us-smtp-delivery-1.mimecast.com) (207.211.31.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 15 Nov 2019 18:14:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1573841663; 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: in-reply-to:in-reply-to:references:references; bh=DmZ/a2s3PTw/BoKbGXEjK9CDztwouGO1YHkM3zNimXE=; b=TdCrGY14rsCQQzHQHikY6HhPROPtuTc1ItB0BaQtEQdP/dIOCy5zaQ1Wzm+4TnB/9H0iQx eJOB4Dlu3BBPFgIFZ3kO41CQKiT/uF7JgFdnaWwGE0K79nggMxEdNjLVqm6tc8Vlqj157t Jd10A0uLBlu9TTMSGngLn8vWnPPUyYw= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-221-UpNU2c-WMqKdQ6ByuAH0eA-1; Fri, 15 Nov 2019 13:14:17 -0500 Received: by mail-wm1-f71.google.com with SMTP id g13so5969111wme.0 for ; Fri, 15 Nov 2019 10:14:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=7lJf4l+sbHsh19XDemeezGC1poeBlq9r3cWEQ4KrV5M=; b=p136PPpxzG5NwGkWAFRYjoj7mK/XQIV2RbqnfFFSWkiFpD/oNqNAEdIQjj1tnNc9DA VYOh4VjY0QRtQcI9q4lIHKKyiXD4GNVY6LAOoGH626nOQPjufFL9CCb/CT1gxblCv3V+ x6TC6RHoaSrLoqbeHPU6kuK2KiyiRzRI9b5oHsN2iDWyrT7O+Rls/rqslAtW0y3RCL47 mZ+NO5JuCXebqOxturvmYOa24chrXQDzRrKpYOZLeluPJ7pA9VxVjX4tGaqWTWfhYUjn LK0HOH4dC82tYsn5Y6NED0rYpTexsfSQEx46bbHI67lnAm12z/Ey4Vmgo3wZVev70UQO Ab3Q== X-Gm-Message-State: APjAAAU8wYtvgd3LLpeuIKVUXs+73nrqAKRJQiTmlKugCZNTDhz5mdHe 9e1OhytLdWVdzWXWKMsjkGjI65gjMYZUYphFo0odWY3ibBZaQ/QsCqwIXmQIU0J+C2sKawwNq7u AxrH+FyoHQ1/8sXEzfe0/mlJ5zQ== X-Received: by 2002:adf:9381:: with SMTP id 1mr3342051wrp.10.1573841656748; Fri, 15 Nov 2019 10:14:16 -0800 (PST) X-Google-Smtp-Source: APXvYqwJ1ow2yVgPR1I1dkCcNvc+rikex+d5NJQf0kwHfCsCgb6n3zVlewk8G0qlBtVTUZVNDiutcA== X-Received: by 2002:adf:9381:: with SMTP id 1mr3342021wrp.10.1573841656426; Fri, 15 Nov 2019 10:14:16 -0800 (PST) Received: from ?IPv6:2001:8a0:f913:f700:56ee:75ff:fe8d:232b? ([2001:8a0:f913:f700:56ee:75ff:fe8d:232b]) by smtp.gmail.com with ESMTPSA id j7sm13637674wro.54.2019.11.15.10.14.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 15 Nov 2019 10:14:15 -0800 (PST) Subject: Re: patch 3/3 debuginfod client interruptability To: Mark Wielaard , Aaron Merey References: <20191028190438.GC14349@redhat.com> <20191028190602.GD14349@redhat.com> <20191028190726.GE14349@redhat.com> <20191104214823.GA17633@redhat.com> <73de7c5ac7205dbb5e6d4c47a2abb0c23cd79d5e.camel@klomp.org> Cc: "Frank Ch. Eigler" , elfutils-devel@sourceware.org From: Pedro Alves Message-ID: <23bbcd14-fc4f-64f6-9a6a-af860b1018cb@redhat.com> Date: Fri, 15 Nov 2019 18:14:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-MC-Unique: UpNU2c-WMqKdQ6ByuAH0eA-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SW-Source: 2019-q4/txt/msg00147.txt.bz2 On 11/15/19 5:35 PM, Mark Wielaard wrote: > IMHO it would be best to avoid any global state from the start. Since > we haven't released this api yet we can make it so that it is easy to > have state per request object.=20 +1 > In the gdb thread=20 > https://sourceware.org/ml/gdb-patches/2019-11/msg00118.html Simon > Marchi suggested something like: >=20 > debuginfod_client *client =3D debuginfod_create_client (); > debuginfod_set_progressfn (client, my_progress_cb); >=20 > With debuginfod_client * being an opaque pointer. I think that is a > good idea. It also matches what libelf (with Elf *) and libdw (with > Dwarf *) do. It also makes it easy to add other kinds of state to > client requests later. >=20 We were discussing this on the #gdb channel on IRC, and I think Simon's idea is the best one so far.=20 It reminded me of libabc,=20 http://0pointer.de/blog/projects/libabc.html which promotes that client pointer mechanism. I recommend reading this: https://git.kernel.org/pub/scm/linux/kernel/git/kay/libabc.git/plain/READ= ME Notably, the "Zero global state" part. Thanks, Pedro Alves