On Thu, 19 Mar 2009, Daniel Stenberg wrote:
> In general it is painful to support both the way the code works now. I
> wonder if we can think of a better way...
Would it be completely crazy if we did all the internals of libssh2 to deal
with non-blocking only, and "only" provide wrapper code that deals with the
blockingness this way:
(pseudo code for how it'd work for blocking sockets)
API-function ()
{
set_nonblocking()
do {
rc = useinternal_function()
if (rc) {
wait_for_socket_action();
}
} while (rc == EAGAIN);
set_blocking()
return rc;
}
The upside will be that only these upper layer functions would need to bother
about blockiness, and all the "core" functionality would always assume and use
non-blocking.
We would also gain some control and be able to for example allow flexible
time-outs etc even for the blocking API.
--
/ daniel.haxx.se
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
libssh2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libssh2-devel