dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit b9b4931bdea064808ef6df36772d1f8b6fcdb492
parent 2affc8be94b75793b3a2a3f841d87972a7499872
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Tue, 23 May 2023 07:06:08 -0700

fix concurrent issue

Diffstat:
Mpkg/managers/managers.go | 4++++
1 file changed, 4 insertions(+), 0 deletions(-)

diff --git a/pkg/managers/managers.go b/pkg/managers/managers.go @@ -109,13 +109,17 @@ func (m *ActiveUsersManager) UpdateUserInRoom(room database.ChatRoom, userInfo U } roomKey := getRoomKey(room) usersMap := m.getRoomUsersMap(roomKey) + + m.RLock() prevUserInfo := usersMap[userInfo.Username] + m.RUnlock() if prevUserInfo.LastActivity == nil && userInfo.LastActivity == nil { now := time.Now() userInfo.LastActivity = &now } else if userInfo.LastActivity == nil { userInfo.LastActivity = prevUserInfo.LastActivity } + m.Lock() usersMap[userInfo.Username] = userInfo m.activeUsers[roomKey] = usersMap