debian-forge-composer/vendor/github.com/jackc/puddle
dependabot[bot] b133ff5994 build(deps): bump github.com/jackc/pgx/v4 from 4.16.0 to 4.17.1
Bumps [github.com/jackc/pgx/v4](https://github.com/jackc/pgx) from 4.16.0 to 4.17.1.
- [Release notes](https://github.com/jackc/pgx/releases)
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jackc/pgx/compare/v4.16.0...v4.17.1)

---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-30 15:34:23 +02:00
..
CHANGELOG.md build(deps): bump github.com/jackc/pgx/v4 from 4.16.0 to 4.17.1 2022-08-30 15:34:23 +02:00
doc.go jobqueue: Introduce jobqueue backed by a postgres database 2021-07-28 21:52:31 +01:00
go.mod jobqueue: Introduce jobqueue backed by a postgres database 2021-07-28 21:52:31 +01:00
go.sum jobqueue: Introduce jobqueue backed by a postgres database 2021-07-28 21:52:31 +01:00
LICENSE jobqueue: Introduce jobqueue backed by a postgres database 2021-07-28 21:52:31 +01:00
nanotime_time.go jobqueue: Introduce jobqueue backed by a postgres database 2021-07-28 21:52:31 +01:00
nanotime_unsafe.go jobqueue: Introduce jobqueue backed by a postgres database 2021-07-28 21:52:31 +01:00
pool.go build(deps): bump github.com/jackc/pgx/v4 from 4.16.0 to 4.17.1 2022-08-30 15:34:23 +02:00
README.md build(deps): bump github.com/jackc/pgx/v4 from 4.16.0 to 4.17.1 2022-08-30 15:34:23 +02:00

Build Status

Puddle

Puddle is a tiny generic resource pool library for Go that uses the standard context library to signal cancellation of acquires. It is designed to contain the minimum functionality required for a resource pool. It can be used directly or it can be used as the base for a domain specific resource pool. For example, a database connection pool may use puddle internally and implement health checks and keep-alive behavior without needing to implement any concurrent code of its own.

Features

  • Acquire cancellation via context standard library
  • Statistics API for monitoring pool pressure
  • No dependencies outside of standard library
  • High performance
  • 100% test coverage

Example Usage

constructor := func(context.Context) (interface{}, error) {
  return net.Dial("tcp", "127.0.0.1:8080")
}
destructor := func(value interface{}) {
  value.(net.Conn).Close()
}
maxPoolSize := 10

pool := puddle.NewPool(constructor, destructor, maxPoolSize)

// Acquire resource from the pool.
res, err := pool.Acquire(context.Background())
if err != nil {
  // ...
}

// Use resource.
_, err = res.Value().(net.Conn).Write([]byte{1})
if err != nil {
  // ...
}

// Release when done.
res.Release()

Status

Puddle v1 is complete. No changes are planned.

  • Bug reports and fixes are welcome.
  • New features will not be accepted if they can be feasibly implemented in a wrapper.
  • Performance optimizations will not be accepted unless the performance issue rises to the level of a bug.

License

MIT