Skip to content

Commit 6b601d9

Browse files
committed
Merge pull request #91 from gamer3dx/exceptionfix
Fixed System.InvalidOperationException
2 parents 349d6ef + c04c836 commit 6b601d9

1 file changed

Lines changed: 31 additions & 11 deletions

File tree

Src/SocketIoClientDotNet.net45/Client/Manager_net35.cs

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -244,14 +244,18 @@ private Manager Open(IOpenCallback fn)
244244
log2.Info("Manager Open finish");
245245

246246
}, timeout);
247-
248-
Subs.Enqueue(new On.ActionHandleImpl(timer.Stop));
249-
;
247+
lock (Subs)
248+
{
249+
Subs.Enqueue(new On.ActionHandleImpl(timer.Stop));
250+
}
250251

251252
}
252253

253-
Subs.Enqueue(openSub);
254-
Subs.Enqueue(errorSub);
254+
lock (Subs)
255+
{
256+
Subs.Enqueue(openSub);
257+
Subs.Enqueue(errorSub);
258+
}
255259
EngineSocket.Open();
256260

257261
return this;
@@ -280,25 +284,38 @@ private void OnOpen()
280284
Ondata((byte[])data);
281285
}
282286
}));
283-
Subs.Enqueue(sub);
287+
lock (Subs)
288+
{
289+
Subs.Enqueue(sub);
290+
}
284291

285292
sub = Client.On.Create(this.Decoder, Parser.Parser.Decoder.EVENT_DECODED, new ListenerImpl((data) =>
286293
{
287294
OnDecoded((Parser.Packet)data);
288295
}));
289-
Subs.Enqueue(sub);
296+
lock (Subs)
297+
{
298+
Subs.Enqueue(sub);
299+
}
290300

291301
sub = Client.On.Create(socket, Engine.EVENT_ERROR, new ListenerImpl((data) =>
292302
{
293303
OnError((Exception) data);
294304
}));
295-
Subs.Enqueue(sub);
305+
lock (Subs)
306+
{
307+
Subs.Enqueue(sub);
308+
}
296309

297310
sub = Client.On.Create(socket, Engine.EVENT_CLOSE, new ListenerImpl((data) =>
298311
{
299312
OnClose((string) data);
300313
}));
301-
Subs.Enqueue(sub);
314+
315+
lock (Subs)
316+
{
317+
Subs.Enqueue(sub);
318+
}
302319

303320

304321
}
@@ -396,9 +413,12 @@ private void ProcessPacketQueue()
396413

397414
private void Cleanup()
398415
{
399-
foreach (var sub in Subs)
416+
lock (Subs)
400417
{
401-
sub.Destroy();
418+
foreach (var sub in Subs)
419+
{
420+
sub.Destroy();
421+
}
402422
}
403423
}
404424

0 commit comments

Comments
 (0)