Subject: [libssh2] Linux: Polling is completely broken.

[libssh2] Linux: Polling is completely broken.

From: Paul Thomas <thomaspu_at_gmail.com>
Date: Thu, 6 Mar 2008 16:12:01 -0500

Developers,

I've found a bug. Its causing me some grief.....

I've played and played with trying to poll channels on Linux and the
polling always returns 0, saying theres nothing to read on the
channel. Both
  libssh2_poll()
  libssh2_poll_channel_read()

do not work. However, I can get each one to work reliably on Windows
XP. The only way that I can get "polling-like" functionallity is to
always assume there is data to be read.

Here's an example of the code I'm using for libssh2_poll:
        LIBSSH2_POLLFD pfd;
        pfd.type = LIBSSH2_POLLFD_CHANNEL;
                
        m_locker.lock();
        for(int i = 0; i < m_channelList.size(); i++)
        {
                //Sanity check
                if ( ! m_channelList[i].pChannel )
                        continue;

                pfd.fd.channel = m_channelList[i].pChannel;
                if ( libssh2_poll( &pfd, 1, 1) )
                {
                        /****************THIS is NEVER triggered on Linux******************/
                        emit channelHasData(m_channelList[i].channelNumToEmit);
                }
        }
        m_locker.unlock();

Details:
   Gentoo Linux with latest updates
   Kubuntu Linux 7.10 with latest updates

using libssh2 from CVS

Regards,
Paul Thomas

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
libssh2-devel mailing list
libssh2-devel_at_lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libssh2-devel
Received on 2008-03-06