> -----Original Message----- > From: [email protected] [mailto:[email protected]] > Sent: Thursday, February 03, 2011 9:35 PM > > But ldap_send_initial_request() then gets a good return > > code from ldap_open_defconn(), and so it goes on to call > > ldap_send_server_request() to send the bind, and that then calls > > ldap_int_poll() which waits for the connect to complete, making the > whole operation synchronous. > > No. ldap_int_poll() will return -2 if timeout is 0 and the filedes was > not > active. So ldap_send_server_request() will return LDAP_X_CONNECTING if > async.
Thanks. That's what the code should be doing but it's not what I was seeing, so I did a bit of debugging and it turns out that that ldap_int_poll call returns 0, not -2. But that is because the poll (or select) call in it returns 1 indicating that the connect completed immediately. So it's actually functioning as it should. > The only place where this is used is in back-meta, where searches > to multiple handles were initiated sequentially, and > LDAP_OPT_CONNECT_ASYNC was introduced to avoid having to wait for each > connection to be established before starting processing available > results. That's basically exactly the exact reason I am trying to use it now. Thanks Ian
