Date: Tue, 29 Dec 2020 15:11:55 +0000 From: Jessica Clarke <jrtc27@freebsd.org> To: Edward Tomasz Napierala <trasz@FreeBSD.org> Cc: "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org> Subject: Re: git: 89e3d5671ba1 - main - bsnmpclient(3): make it thread-safe Message-ID: <DBC0C62C-1280-4ADE-BF03-18D781330E5A@freebsd.org> In-Reply-To: <202012291500.0BTF0vGw034594@gitrepo.freebsd.org> References: <202012291500.0BTF0vGw034594@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 29 Dec 2020, at 15:00, Edward Tomasz Napierala <trasz@FreeBSD.org> = wrote: > diff --git a/contrib/bsnmp/lib/snmpclient.c = b/contrib/bsnmp/lib/snmpclient.c > index c22d8e125a14..e49105918416 100644 > --- a/contrib/bsnmp/lib/snmpclient.c > +++ b/contrib/bsnmp/lib/snmpclient.c > @@ -71,7 +71,7 @@ > #define DEBUG_PARSE 0 >=20 > /* global context */ > -struct snmp_client snmp_client; > +__thread struct snmp_client snmp_client; That comment is no longer true. > /* List of all outstanding requests */ > struct sent_pdu { > @@ -86,7 +86,7 @@ struct sent_pdu { > }; > LIST_HEAD(sent_pdu_list, sent_pdu); >=20 > -static struct sent_pdu_list sent_pdus; > +__thread static struct sent_pdu_list sent_pdus; >=20 > /* > * Prototype table entry. All C-structure produced by the table = function must > diff --git a/contrib/bsnmp/lib/snmpclient.h = b/contrib/bsnmp/lib/snmpclient.h > index a19bdb2ea653..1bc3780de038 100644 > --- a/contrib/bsnmp/lib/snmpclient.h > +++ b/contrib/bsnmp/lib/snmpclient.h > @@ -114,7 +114,7 @@ struct snmp_client { > }; >=20 > /* the global context */ > -extern struct snmp_client snmp_client; > +extern __thread struct snmp_client snmp_client; Ditto. Is there really a documented requirement for everything to be called from the same thread? I can see consumers of the library that already use proper locking breaking because of this. Jess
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DBC0C62C-1280-4ADE-BF03-18D781330E5A>