Hello, All:
I installed cyrus-imapd-2.1.5 in solaris 2.8, with db-4.0.14 and
cyrus-sasl-2.1.6 altogether.
Now I'm testing a c++ program treating with the concurrent accesses
(Read/Write) to the mailboxes of Cyrus IMAPD, each as an independent
process.

When I run /usr/cyrus/bin/master as a foreground proc, it works well;
However, if I run it as background proc (like /usr/cyrus/bin/master&), there
was problem: almost all the processing be blocked on "uid fetch" command,
where my codes like this:

    FD_ZERO(&fdRead);
    FD_SET(m_nSocket, &fdRead);
    nRes = select(m_nSocket + 1, &fdRead, NULL, NULL, &timeout);
    if ( nRes < 0 )
        continue;
    else if ( nRes == 0 )
        return RECV_RESP_TIMEOUT;//Request TimeOut

    if ( FD_ISSET(m_nSocket, &fdRead) ) {
        nRecvLen += recv(m_nSocket, bufRecv.begin() + nRecvLen,
bufRecv.size(), 0);
        ... ...
    }

I don't know why it got blocked? what happened when running background?
and it sounds strange, doesn't it?
Thanks for any help!


Sincerely,
Lin        Nov 5, 2002
[EMAIL PROTECTED]

Reply via email to