background vs. foreground ?

Lin Wang linwang at utstar.com
Tue Nov 5 01:49:39 EST 2002


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
linwang at utstar.com





More information about the Info-cyrus mailing list