@@ -21,20 +21,20 @@ class Pool {
2121 ///
2222 /// When an item is released, the next element of [_requestedResources] will
2323 /// be completed.
24- final _requestedResources = new Queue <Completer <PoolResource >>();
24+ final _requestedResources = Queue <Completer <PoolResource >>();
2525
2626 /// Callbacks that must be called before additional resources can be
2727 /// allocated.
2828 ///
2929 /// See [PoolResource.allowRelease] .
30- final _onReleaseCallbacks = new Queue <Function >();
30+ final _onReleaseCallbacks = Queue <void Function () >();
3131
3232 /// Completers that will be completed once `onRelease` callbacks are done
3333 /// running.
3434 ///
3535 /// These are kept in a queue to ensure that the earliest request completes
3636 /// first regardless of what order the `onRelease` callbacks complete in.
37- final _onReleaseCompleters = new Queue <Completer <PoolResource >>();
37+ final _onReleaseCompleters = Queue <Completer <PoolResource >>();
3838
3939 /// The maximum number of resources that may be allocated at once.
4040 final int _maxAllocatedResources;
@@ -82,7 +82,7 @@ class Pool {
8282 if (timeout != null ) {
8383 // Start the timer canceled since we only want to start counting down once
8484 // we've run out of available resources.
85- _timer = new RestartableTimer (timeout, _onTimeout)..cancel ();
85+ _timer = RestartableTimer (timeout, _onTimeout)..cancel ();
8686 }
8787 }
8888
@@ -92,16 +92,16 @@ class Pool {
9292 /// until one of them is released.
9393 Future <PoolResource > request () {
9494 if (isClosed) {
95- throw new StateError ("request() may not be called on a closed Pool." );
95+ throw StateError ("request() may not be called on a closed Pool." );
9696 }
9797
9898 if (_allocatedResources < _maxAllocatedResources) {
9999 _allocatedResources++ ;
100- return new Future .value (new PoolResource ._(this ));
100+ return Future .value (PoolResource ._(this ));
101101 } else if (_onReleaseCallbacks.isNotEmpty) {
102102 return _runOnRelease (_onReleaseCallbacks.removeFirst ());
103103 } else {
104- var completer = new Completer <PoolResource >();
104+ var completer = Completer <PoolResource >();
105105 _requestedResources.add (completer);
106106 _resetTimer ();
107107 return completer.future;
@@ -114,16 +114,15 @@ class Pool {
114114 /// The return value of [callback] is piped to the returned Future.
115115 Future <T > withResource <T >(FutureOr <T > callback ()) {
116116 if (isClosed) {
117- throw new StateError (
118- "withResource() may not be called on a closed Pool." );
117+ throw StateError ("withResource() may not be called on a closed Pool." );
119118 }
120119
121120 // We can't use async/await here because we need to start the request
122121 // synchronously in case the pool is closed immediately afterwards. Async
123122 // functions have an asynchronous gap between calling and running the body,
124123 // and [close] could be called during that gap. See #3.
125124 return request ().then ((resource) {
126- return new Future <T >.sync (callback).whenComplete (resource.release);
125+ return Future <T >.sync (callback).whenComplete (resource.release);
127126 });
128127 }
129128
@@ -143,9 +142,9 @@ class Pool {
143142
144143 _resetTimer ();
145144
146- _closeGroup = new FutureGroup ();
145+ _closeGroup = FutureGroup ();
147146 for (var callback in _onReleaseCallbacks) {
148- _closeGroup.add (new Future .sync (callback));
147+ _closeGroup.add (Future .sync (callback));
149148 }
150149
151150 _allocatedResources -= _onReleaseCallbacks.length;
@@ -154,15 +153,15 @@ class Pool {
154153 if (_allocatedResources == 0 ) _closeGroup.close ();
155154 return _closeGroup.future;
156155 });
157- final _closeMemo = new AsyncMemoizer ();
156+ final _closeMemo = AsyncMemoizer ();
158157
159158 /// If there are any pending requests, this will fire the oldest one.
160159 void _onResourceReleased () {
161160 _resetTimer ();
162161
163162 if (_requestedResources.isNotEmpty) {
164163 var pending = _requestedResources.removeFirst ();
165- pending.complete (new PoolResource ._(this ));
164+ pending.complete (PoolResource ._(this ));
166165 } else {
167166 _allocatedResources-- ;
168167 if (isClosed && _allocatedResources == 0 ) _closeGroup.close ();
@@ -178,7 +177,7 @@ class Pool {
178177 var pending = _requestedResources.removeFirst ();
179178 pending.complete (_runOnRelease (onRelease));
180179 } else if (isClosed) {
181- _closeGroup.add (new Future .sync (onRelease));
180+ _closeGroup.add (Future .sync (onRelease));
182181 _allocatedResources-- ;
183182 if (_allocatedResources == 0 ) _closeGroup.close ();
184183 } else {
@@ -194,13 +193,13 @@ class Pool {
194193 /// Futures returned by [_runOnRelease] always complete in the order they were
195194 /// created, even if earlier [onRelease] callbacks take longer to run.
196195 Future <PoolResource > _runOnRelease (onRelease ()) {
197- new Future .sync (onRelease).then ((value) {
198- _onReleaseCompleters.removeFirst ().complete (new PoolResource ._(this ));
199- }).catchError ((error, stackTrace) {
196+ Future .sync (onRelease).then ((value) {
197+ _onReleaseCompleters.removeFirst ().complete (PoolResource ._(this ));
198+ }).catchError ((error, StackTrace stackTrace) {
200199 _onReleaseCompleters.removeFirst ().completeError (error, stackTrace);
201200 });
202201
203- var completer = new Completer <PoolResource >.sync ();
202+ var completer = Completer <PoolResource >.sync ();
204203 _onReleaseCompleters.add (completer);
205204 return completer.future;
206205 }
@@ -221,11 +220,11 @@ class Pool {
221220 void _onTimeout () {
222221 for (var completer in _requestedResources) {
223222 completer.completeError (
224- new TimeoutException (
223+ TimeoutException (
225224 "Pool deadlock: all resources have been "
226225 "allocated for too long." ,
227226 _timeout),
228- new Chain .current ());
227+ Chain .current ());
229228 }
230229 _requestedResources.clear ();
231230 _timer = null ;
@@ -248,7 +247,7 @@ class PoolResource {
248247 /// no longer allocated, and that a new [PoolResource] may be allocated.
249248 void release () {
250249 if (_released) {
251- throw new StateError ("A PoolResource may only be released once." );
250+ throw StateError ("A PoolResource may only be released once." );
252251 }
253252 _released = true ;
254253 _pool._onResourceReleased ();
@@ -268,7 +267,7 @@ class PoolResource {
268267 /// may be complete, but it could still emit asynchronous errors.
269268 void allowRelease (onRelease ()) {
270269 if (_released) {
271- throw new StateError ("A PoolResource may only be released once." );
270+ throw StateError ("A PoolResource may only be released once." );
272271 }
273272 _released = true ;
274273 _pool._onResourceReleaseAllowed (onRelease);
0 commit comments