Changeset 22 in chevmsgr


Ignore:
Timestamp:
11/28/15 20:57:41 (8 years ago)
Author:
cheese
Message:

client stability

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/msgclnt.cpp

    r20 r22  
    152152Protocol::Message MessageQ::pop(const std::string & requestType, bool isWait)
    153153{
     154    Protocol::Message msg;
     155
    154156    do
    155157    {
     158        if (messageQ.size() == 0)
     159            continue;
     160
    156161        mutex.lock();
    157         if (messageQ.size() == 0)
    158         {
    159             mutex.unlock();
    160             continue;
    161         }
    162 
    163         Protocol::Message message = messageQ.front();
    164 
    165         if (message.type() == requestType)
    166         {
    167             messageQ.erase(messageQ.begin());
    168             mutex.unlock();
    169             return message;
     162        if (messageQ.size() > 0)
     163        {
     164            if (messageQ.front().type() == requestType)
     165            {
     166                msg = messageQ.front();
     167                messageQ.pop_front();
     168                isWait = false;
     169            }
    170170        }
    171171        mutex.unlock();
    172172    } while (isWait);
    173173
    174     return Protocol::Message(); // return dummy NONE
     174    return msg;
    175175}
    176176
     
    199199{
    200200    secureSocket.close();
    201     listener.join();
    202     caller.join();
    203201}
    204202
  • trunk/msvc14/testClient/test.cpp

    r18 r22  
    7777    T(c.listen(cb));
    7878
    79     sms = "633174";// CIN(sms);
     79    sms = "545454";// CIN(sms);
    8080    if (mode == "join")
    8181    {
Note: See TracChangeset for help on using the changeset viewer.