No need to use private functions. Just use non-blocking mode. Use libssh2_session_init, then use libssh2_session_set_blocking to enable non-blocking mode, and then call libssh2_session_handshake repeatedly until it no longer returns LIBSSH2_ERROR_EAGAIN
I'm not aware of how fibers work, but I guess you would call yield() inbetween libssh2 API calls. (I tried to send this email yesterday, but used the wrong from-address, and the list server seems to have ignored it.) > Am 13.10.2014 um 12:55 schrieb Martin Drašar <[email protected]>: > > Hi, > > I have a program that uses fibers as a mean for parallelism and would > like to use libssh2 in it. However, some of these functions seem more > apt for thread-based parallelism. I have in mind functions using e.g. > the BLOCK_ADJUST macros. > > So I just want to ask you, if the following approach I want to use is > the correct one. Instead of calling libssh2_session_handshake I have > this cycle that is basically BLOCK_ADJUST sans keepalive: > > while (socket not read or written to) > { > session_startup(session, socket); > yield(); // Pass execution to another fiber > } > > I ask, because the session_startup function is not exported into public API. > > Thanks. > Martin > > _______________________________________________ > libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
_______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
