Hi Mike, Thanks for the reply. Unfortunately, I am only implementing an .so file and have no access to the main program. I understand ssh_init() would solve the problem but my library is being called within a thread and I cannot change what's in the main/original thread.
Look forward to additional input. Thanks, Anne On Wed, Apr 16, 2014 at 2:53 AM, Mike Jones <[email protected]> wrote: > On 4/16/2014 1:51 AM, ZhangAnne wrote: > > Hi, > > I am implementing a shared library, and met the threading issue when the > program calls my library and executes multiple threads in parallel. Since > my lib is being called by other program, I cannot initialize the threading > outside of any threading context as mentioned here: > http://api.libssh.org/master/libssh_tutor_threads.html > > My control to the code is limited within the scope of my library. I am > wondering if there is any workaround other than changing code ouside my > library? > > Thanks, > > Anne > > > If it helps, I used libssh in a multi-threaded application without calling > ssh_threads_set_callbacks() or linking libssh_threads. > In fact, I never even read this part of the libssh documentation before > today. :) > > The main/original thread of the application calls ssh_init() and then > spawns off one additional thread that makes all the other libssh calls. > The freeing of resources and ssh_finalize() are done back in the original > thread after this other thread has finished. > > So far there have been no issues that I can attribute to using it this way. > > We're running on Linux (RedHat 6.x) and using libpthread. > > - Mike > > > >
