Re: libpq OpenSSL and multithreading

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: Daniel Gustafsson <daniel(at)yesql(dot)se>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: libpq OpenSSL and multithreading
Date: 2025-10-29 09:41:17
Message-ID: f84c9752-46b8-42bb-9974-50a398035577@eisentraut.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 22.10.25 10:59, Daniel Gustafsson wrote:
>> On 1 Sep 2025, at 07:27, Peter Eisentraut <peter(at)eisentraut(dot)org> wrote:
>
>> I suggest that instead of adding the context to the Port structure, make a separate context struct for this purpose, for example:
>
> Fair enough, done in the attached.

This looks good to me. (I would not have the CallbackErr typedef, since
that additional abstraction doesn't buy anything. But it's a small
difference.)

>> This seems like an extremely inconvenient solution, as can be seen by the amount of changes your patch introduces. We could just make errbuf thread-local and be done, without having to change the API. (This is how glibc's strerror() works internally.)
>
> I assume you mean simply leaving it be for now awaiting more thread primitives
> to be added to fully support thread local storage?

Yes

> (sidenote; if our thread
> local store code will use TLS then be-secure-openssl.c will be challenging to
> read =)).

Yes, let's rename it to SSL to avoid this. ;-)

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2025-10-29 10:11:51 Re: Bump soft open file limit (RLIMIT_NOFILE) to hard limit on startup
Previous Message Richard Guo 2025-10-29 09:21:19 Re: apply_scanjoin_target_to_paths and partitionwise join