@@ -69,10 +69,10 @@ impl<T: Send + Sync> ResourcePool<T> {
69
69
Ok ( ResourcePoolItem :: new ( self , resources. pop_front ( ) . unwrap ( ) ) )
70
70
}
71
71
72
- /// Return a resource to the pool
73
- /// A resource is returned to the pool only if the discriminant matches
72
+ /// Give back a resource to the pool
73
+ /// A resource is given back to the pool only if the discriminant matches
74
74
/// and if the pool is not already full
75
- pub fn return_resource ( & self , resource : T , discriminant : u64 ) -> StdResult < ( ) > {
75
+ pub fn give_back_resource ( & self , resource : T , discriminant : u64 ) -> StdResult < ( ) > {
76
76
if self . count ( ) ? == self . size {
77
77
// Pool is full
78
78
return Ok ( ( ) ) ;
@@ -81,7 +81,7 @@ impl<T: Send + Sync> ResourcePool<T> {
81
81
. resources
82
82
. lock ( )
83
83
. map_err ( |_| ResourcePoolError :: PoisonedLock ( ) )
84
- . with_context ( || "Resource pool 'return_resource ' failed locking Mutex" ) ?;
84
+ . with_context ( || "Resource pool 'give_back_resource ' failed locking Mutex" ) ?;
85
85
if self . discriminant ( ) ? != discriminant {
86
86
// Stale resource
87
87
return Ok ( ( ) ) ;
@@ -195,7 +195,7 @@ impl<T: Send + Sync> Drop for ResourcePoolItem<'_, T> {
195
195
let resource = self . into_inner ( ) ;
196
196
let _ = self
197
197
. resource_pool
198
- . return_resource ( resource, self . discriminant ) ;
198
+ . give_back_resource ( resource, self . discriminant ) ;
199
199
}
200
200
}
201
201
}
@@ -254,28 +254,29 @@ mod tests {
254
254
}
255
255
256
256
#[ tokio:: test]
257
- async fn test_resource_pool_returns_fresh_resource ( ) {
257
+ async fn test_resource_pool_gives_back_fresh_resource ( ) {
258
258
let pool_size = 10 ;
259
259
let resources_expected: Vec < String > = ( 0 ..pool_size) . map ( |i| i. to_string ( ) ) . collect ( ) ;
260
260
let pool = ResourcePool :: < String > :: new ( pool_size, resources_expected. clone ( ) ) ;
261
261
assert_eq ! ( pool. count( ) . unwrap( ) , pool_size) ;
262
262
263
263
let mut resource_item = pool. acquire_resource ( Duration :: from_millis ( 1000 ) ) . unwrap ( ) ;
264
264
assert_eq ! ( pool. count( ) . unwrap( ) , pool_size - 1 ) ;
265
- pool. return_resource ( resource_item. into_inner ( ) , pool. discriminant ( ) . unwrap ( ) )
265
+ pool. give_back_resource ( resource_item. into_inner ( ) , pool. discriminant ( ) . unwrap ( ) )
266
266
. unwrap ( ) ;
267
267
268
268
assert_eq ! ( pool. count( ) . unwrap( ) , pool_size) ;
269
269
}
270
270
271
271
#[ tokio:: test]
272
- async fn test_resource_pool_returns_resource_automatically ( ) {
272
+ async fn test_resource_pool_gives_back_resource_automatically ( ) {
273
273
let pool_size = 10 ;
274
274
let resources_expected: Vec < String > = ( 0 ..pool_size) . map ( |i| i. to_string ( ) ) . collect ( ) ;
275
275
let pool = ResourcePool :: < String > :: new ( pool_size, resources_expected. clone ( ) ) ;
276
276
assert_eq ! ( pool. count( ) . unwrap( ) , pool_size) ;
277
277
278
278
{
279
+ // Resource will be returned when resource item is dropped (will occur when exiting this block scope)
279
280
let _resource_item = pool. acquire_resource ( Duration :: from_millis ( 1000 ) ) . unwrap ( ) ;
280
281
assert_eq ! ( pool. count( ) . unwrap( ) , pool_size - 1 ) ;
281
282
}
@@ -284,20 +285,20 @@ mod tests {
284
285
}
285
286
286
287
#[ tokio:: test]
287
- async fn test_resource_pool_does_not_return_resource_when_pool_is_full ( ) {
288
+ async fn test_resource_pool_does_not_give_back_resource_when_pool_is_full ( ) {
288
289
let pool_size = 10 ;
289
290
let resources_expected: Vec < String > = ( 0 ..pool_size) . map ( |i| i. to_string ( ) ) . collect ( ) ;
290
291
let pool = ResourcePool :: < String > :: new ( pool_size, resources_expected. clone ( ) ) ;
291
292
assert_eq ! ( pool. count( ) . unwrap( ) , pool_size) ;
292
293
293
- pool. return_resource ( "resource" . to_string ( ) , pool. discriminant ( ) . unwrap ( ) )
294
+ pool. give_back_resource ( "resource" . to_string ( ) , pool. discriminant ( ) . unwrap ( ) )
294
295
. unwrap ( ) ;
295
296
296
297
assert_eq ! ( pool. count( ) . unwrap( ) , pool_size) ;
297
298
}
298
299
299
300
#[ tokio:: test]
300
- async fn test_resource_pool_does_not_return_stale_resource ( ) {
301
+ async fn test_resource_pool_does_not_giev_back_stale_resource ( ) {
301
302
let pool_size = 10 ;
302
303
let resources_expected: Vec < String > = ( 0 ..pool_size) . map ( |i| i. to_string ( ) ) . collect ( ) ;
303
304
let pool = ResourcePool :: < String > :: new ( pool_size, resources_expected. clone ( ) ) ;
@@ -308,7 +309,7 @@ mod tests {
308
309
let discriminant_stale = pool. discriminant ( ) . unwrap ( ) ;
309
310
pool. set_discriminant ( pool. discriminant ( ) . unwrap ( ) + 1 )
310
311
. unwrap ( ) ;
311
- pool. return_resource ( resource_item. into_inner ( ) , discriminant_stale)
312
+ pool. give_back_resource ( resource_item. into_inner ( ) , discriminant_stale)
312
313
. unwrap ( ) ;
313
314
314
315
assert_eq ! ( pool. count( ) . unwrap( ) , pool_size - 1 ) ;
0 commit comments