PR_EnterMonitor(m_urlReadyToRunMonitor); m_nextUrlReadyToRun = PR_TRUE; PR_Notify(m_urlReadyToRunMonitor); PR_ExitMonitor(m_urlReadyToRunMonitor);
m_needNoop = (imapAction == nsIImapUrl::nsImapSelectFolder || imapAction == nsIImapUrl::nsImapDeleteAllMsgs);
nsresult nsImapProtocol::LoadUrl(nsIURI * aURL, nsISupports * aConsumer){  nsresult rv = NS_OK;  if (aURL)  {#ifdef DEBUG_bienvenu1    nsXPIDLCString urlSpec;    aURL->GetSpec(getter_Copies(urlSpec));    printf("loading url %s\n", (const char *) urlSpec);#endif    m_urlInProgress = PR_TRUE;    rv = SetupWithUrl(aURL, aConsumer);     NS_ASSERTION(NS_SUCCEEDED(rv), "error setting up imap url");    if (NS_FAILED(rv)) return rv;      SetupSinkProxy(); // generate proxies for all of the event sinks in the url    m_lastActiveTime = PR_Now();    if (m_channel && m_runningUrl)    {      nsImapAction imapAction;      m_runningUrl->GetImapAction(&imapAction);      // if we're running a select or delete all, do a noop first.      // this should really be in the connection cache code when we know      // we're pulling out a selected state connection, but maybe we      // can get away with this.      m_needNoop = (imapAction == nsIImapUrl::nsImapSelectFolder || imapAction == nsIImapUrl::nsImapDeleteAllMsgs);      // We now have a url to run so signal the monitor for url ready to be processed...      PR_EnterMonitor(m_urlReadyToRunMonitor);      m_nextUrlReadyToRun = PR_TRUE;      PR_Notify(m_urlReadyToRunMonitor);      PR_ExitMonitor(m_urlReadyToRunMonitor);    } // if we have an imap url and a transport    else      NS_ASSERTION(PR_FALSE, "missing channel or running url");  } // if we received a url!  return rv;}