[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Multi-threading

On 20/12/17 11:55, Nikos Mavrogiannopoulos wrote:
> On Wed, 2017-12-20 at 10:38 +0100, Andreas Schneider wrote:
>> On Tuesday, 12 December 2017 01:25:58 CET Ахриев Альберт wrote:
>>> Dear All, 
>>> As a newcomer I am struggling to understand how to use libssh in
>>> multithreaded environment. 
>>> Very simple question: if application creates in each thread a
>>> separate
>>> instance of ssh session, which runs completely independently from
>>> other
>>> instances, is that enough to guarantee thread-safety? In other
>>> words, are
>>> the state variables of each session really independent?
>> No, that's not enough see:
>> http://api.libssh.org/master/libssh_tutor_threads.html
> Ouch. Is that requirement for libssh or for its back-ends? Other
> (crypto) libraries are using system threads transparently providing
> callbacks exceptionally (or even not). Openssl, libgcrypt, gnutls as
> such examples.
> regards,
> Nikos
Hi Nikos,

Libssh by itself is threadsafe. The requirements here are for the
backends. Openssl and libgcrypt (older versions) are far from being
transparent, for the same reason as we did: forcing usage of one of the
different threading OS APIs would have caused problems sooner or later,
especially for people who aren't using threads at all. OpenSSL threading
implementation is/was (did it improve recently) done via callbacks that
we have to implement. We decided to give a quick solution if you need


and link with libssh_phtreads.so. I think it's an acceptable tradeoff
that will fit 99% of linux/bsd use cases.


Re: Multi-threadingNikos Mavrogiannopoulos <nmav@xxxxxxxxxx>
Multi-threadingАхриев Альберт <aaahaaah@xxxxxxxxx>
Re: Multi-threadingAndreas Schneider <asn@xxxxxxxxxxxxxx>
Re: Multi-threadingNikos Mavrogiannopoulos <nmav@xxxxxxxxxx>
Archive administrator: postmaster@lists.cynapses.org