On Tuesday, 29 January 2019 03:21:24 CET Alberto Garcia wrote:
> Hi,
>
> I've read the info at http://api.libssh.org/master/libssh_tutor_threads.html
> .
>
> I'm writing a program that uses libssh and implements a shell and SOCKS
> capabiliities(SSH_CHANNEL_DIRECT_TCPIP).
>
> When using ssh -D .... it does create one channel for the shell which I run
> under one thread and one channel per every SOCKS connection which is
> handled in another thread. I'm using std::thread.
>
> Every channel is under the same session and as I said they are handled in
> different threads. If as the link says "You cannot use a single session (or
> channels for a single session) in several threads at the same time", what
> is the proper way to handled this?
You can create a thread for one session. All channels derived from that
session need to be handled in the same thread.
If you want do use multiple threads for channels derived form one session you
would need a mutex and lock it for each channel access. I guess that will
everything much slower ...
Andreas
--
Andreas Schneider [email protected]
GPG-ID: 8DFF53E18F2ABC8D8F3C92237EE0FC4DCC014E3D