mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-02 14:16:16 -04:00
qml-app: Fix responsiveness of ChatView
ChatHandler::handleMessages(...) tick() before repling so the raw message queue is processed ChatHandler::handleLobbies(...) make sure tick() is called without previous mutex locking, putting the critical section inside a block ChatView.qml remove unnecessary request to statetoken service that slowed down processing by half, increased chat message refresh time to reduce performance hit
This commit is contained in:
parent
1fa20e16c2
commit
6c6b437db1
3 changed files with 20 additions and 15 deletions
|
@ -837,6 +837,7 @@ void ChatHandler::handleLobbies(Request &/*req*/, Response &resp)
|
|||
{
|
||||
tick();
|
||||
|
||||
{
|
||||
RS_STACK_MUTEX(mMtx); /********** LOCKED **********/
|
||||
resp.mDataStream.getStreamToMember();
|
||||
for(std::vector<Lobby>::iterator vit = mLobbies.begin(); vit != mLobbies.end(); ++vit)
|
||||
|
@ -854,6 +855,7 @@ void ChatHandler::handleLobbies(Request &/*req*/, Response &resp)
|
|||
resp.mDataStream.getStreamToMember() << *vit << makeKeyValueReference("unread_msg_count", unread_msgs);
|
||||
}
|
||||
resp.mStateToken = mLobbiesStateToken;
|
||||
}
|
||||
resp.setOk();
|
||||
}
|
||||
|
||||
|
@ -921,6 +923,12 @@ ResponseTask* ChatHandler::handleLobbyParticipants(Request &req, Response &resp)
|
|||
|
||||
void ChatHandler::handleMessages(Request &req, Response &resp)
|
||||
{
|
||||
/* G10h4ck: Whithout this the request processing won't happen, copied from
|
||||
* ChatHandler::handleLobbies, is this a work around or is the right whay of
|
||||
* doing it? */
|
||||
tick();
|
||||
|
||||
{
|
||||
RS_STACK_MUTEX(mMtx); /********** LOCKED **********/
|
||||
ChatId id(req.mPath.top());
|
||||
// make response a list
|
||||
|
@ -941,6 +949,7 @@ void ChatHandler::handleMessages(Request &req, Response &resp)
|
|||
}
|
||||
resp.mStateToken = mMsgStateToken;
|
||||
handlePaginationRequest(req, resp, mit->second);
|
||||
}
|
||||
}
|
||||
|
||||
void ChatHandler::handleSendMessage(Request &req, Response &resp)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue