github.com/jackc/puddle/v2@v2.2.2-0.20240301145809-72b022bcfc59/CHANGELOG.md (about)

     1  # 2.2.1 (July 15, 2023)
     2  
     3  * Fix: CreateResource cannot overflow pool. This changes documented behavior of CreateResource. Previously,
     4    CreateResource could create a resource even if the pool was full. This could cause the pool to overflow. While this
     5    was documented, it was documenting incorrect behavior. CreateResource now returns an error if the pool is full.
     6  
     7  # 2.2.0 (February 11, 2023)
     8  
     9  * Use Go 1.19 atomics and drop go.uber.org/atomic dependency
    10  
    11  # 2.1.2 (November 12, 2022)
    12  
    13  * Restore support to Go 1.18 via go.uber.org/atomic
    14  
    15  # 2.1.1 (November 11, 2022)
    16  
    17  * Fix create resource concurrently with Stat call race
    18  
    19  # 2.1.0 (October 28, 2022)
    20  
    21  * Concurrency control is now implemented with a semaphore. This simplifies some internal logic, resolves a few error conditions (including a deadlock), and improves performance. (Jan Dubsky)
    22  * Go 1.19 is now required for the improved atomic support.
    23  
    24  # 2.0.1 (October 28, 2022)
    25  
    26  * Fix race condition when Close is called concurrently with multiple constructors
    27  
    28  # 2.0.0 (September 17, 2022)
    29  
    30  * Use generics instead of interface{} (Столяров Владимир Алексеевич)
    31  * Add Reset
    32  * Do not cancel resource construction when Acquire is canceled
    33  * NewPool takes Config
    34  
    35  # 1.3.0 (August 27, 2022)
    36  
    37  * Acquire creates resources in background to allow creation to continue after Acquire is canceled (James Hartig)
    38  
    39  # 1.2.1 (December 2, 2021)
    40  
    41  * TryAcquire now does not block when background constructing resource
    42  
    43  # 1.2.0 (November 20, 2021)
    44  
    45  * Add TryAcquire (A. Jensen)
    46  * Fix: remove memory leak / unintentionally pinned memory when shrinking slices (Alexander Staubo)
    47  * Fix: Do not leave pool locked after panic from nil context
    48  
    49  # 1.1.4 (September 11, 2021)
    50  
    51  * Fix: Deadlock in CreateResource if pool was closed during resource acquisition (Dmitriy Matrenichev)
    52  
    53  # 1.1.3 (December 3, 2020)
    54  
    55  * Fix: Failed resource creation could cause concurrent Acquire to hang. (Evgeny Vanslov)
    56  
    57  # 1.1.2 (September 26, 2020)
    58  
    59  * Fix: Resource.Destroy no longer removes itself from the pool before its destructor has completed.
    60  * Fix: Prevent crash when pool is closed while resource is being created.
    61  
    62  # 1.1.1 (April 2, 2020)
    63  
    64  * Pool.Close can be safely called multiple times
    65  * AcquireAllIDle immediately returns nil if pool is closed
    66  * CreateResource checks if pool is closed before taking any action
    67  * Fix potential race condition when CreateResource and Close are called concurrently. CreateResource now checks if pool is closed before adding newly created resource to pool.
    68  
    69  # 1.1.0 (February 5, 2020)
    70  
    71  * Use runtime.nanotime for faster tracking of acquire time and last usage time.
    72  * Track resource idle time to enable client health check logic. (Patrick Ellul)
    73  * Add CreateResource to construct a new resource without acquiring it. (Patrick Ellul)
    74  * Fix deadlock race when acquire is cancelled. (Michael Tharp)