1
1
import 'dart:io' ;
2
- import 'dart:collection' ;
3
2
import 'package:flutter/foundation.dart' ;
4
3
import 'package:http/http.dart' as http;
5
4
import 'package:http/io_client.dart' ;
@@ -15,7 +14,7 @@ class HttpClientManager {
15
14
static final HttpClientManager _instance = HttpClientManager ._internal ();
16
15
static const int _maxCancelledRequests = 100 ;
17
16
final Map <String , http.Client > _clients = {};
18
- final Queue <String > _cancelledRequests = Queue () ;
17
+ final Set <String > _cancelledRequests = {} ;
19
18
20
19
factory HttpClientManager () {
21
20
return _instance;
@@ -38,9 +37,9 @@ class HttpClientManager {
38
37
_clients[requestId]? .close ();
39
38
_clients.remove (requestId);
40
39
41
- _cancelledRequests.addLast (requestId);
42
- while (_cancelledRequests.length > _maxCancelledRequests) {
43
- _cancelledRequests.removeFirst ( );
40
+ _cancelledRequests.add (requestId);
41
+ if (_cancelledRequests.length > _maxCancelledRequests) {
42
+ _cancelledRequests.remove (_cancelledRequests.first );
44
43
}
45
44
}
46
45
}
@@ -49,6 +48,10 @@ class HttpClientManager {
49
48
return _cancelledRequests.contains (requestId);
50
49
}
51
50
51
+ void removeCancelledRequest (String requestId) {
52
+ _cancelledRequests.remove (requestId);
53
+ }
54
+
52
55
void closeClient (String requestId) {
53
56
if (_clients.containsKey (requestId)) {
54
57
_clients[requestId]? .close ();
0 commit comments