From: Lin Wang (no email)
Date: Tue Nov 05 2002 - 01:49:39 EST
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
|
|
|