File tree 2 files changed +10
-2
lines changed
websites/code2/studygolang/src 2 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -153,15 +153,20 @@ func (this *book) Len() int {
153
153
154
154
// 给某个用户发送一条消息
155
155
func (this * book ) PostMessage (uid int , message * Message ) {
156
+ this .rwMutex .RLock ()
157
+ defer this .rwMutex .RUnlock ()
156
158
if userData , ok := this .users [uid ]; ok {
157
159
logger .Infoln ("post message to" , uid , message )
158
- userData .SendMessage (message )
160
+ go userData .SendMessage (message )
159
161
}
160
162
}
161
163
162
164
// 给所有用户广播消息
163
165
func (this * book ) BroadcastAllUsersMessage (message * Message ) {
164
166
logger .Infoln ("BroadcastAllUsersMessage message" , message )
167
+
168
+ this .rwMutex .RLock ()
169
+ defer this .rwMutex .RUnlock ()
165
170
for _ , userData := range this .users {
166
171
userData .SendMessage (message )
167
172
}
@@ -170,6 +175,9 @@ func (this *book) BroadcastAllUsersMessage(message *Message) {
170
175
// 给除了自己的其他用户广播消息
171
176
func (this * book ) BroadcastToOthersMessage (message * Message , myself int ) {
172
177
logger .Infoln ("BroadcastToOthersMessage message" , message )
178
+
179
+ this .rwMutex .RLock ()
180
+ defer this .rwMutex .RUnlock ()
173
181
for uid , userData := range this .users {
174
182
if uid == myself {
175
183
continue
Original file line number Diff line number Diff line change 215
215
{
216
216
"importpath": "github.com/polaris1119/middleware",
217
217
"repository": "https://github.com/polaris1119/middleware",
218
- "revision": "f17141979ae085ca77015f1e3e276039d7c6cfd7 ",
218
+ "revision": "115eb7d414d2fe3eb092aedd57b4dcd1c9966fe3 ",
219
219
"branch": "master"
220
220
},
221
221
{
You can’t perform that action at this time.
0 commit comments