Skip site navigation (1)Skip section navigation (2)
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>