2
0

Update example usage in README.md

This commit is contained in:
Jack Christensen
2022-12-28 09:20:49 -06:00
parent c131081c8e
commit 5174aa0023
+19 -5
View File
@@ -22,31 +22,45 @@ own.
## Example Usage ## Example Usage
```go ```go
package main
import (
"context"
"log"
"net"
"github.com/jackc/puddle/v2"
)
func main() {
constructor := func(context.Context) (net.Conn, error) { constructor := func(context.Context) (net.Conn, error) {
return net.Dial("tcp", "127.0.0.1:8080") return net.Dial("tcp", "127.0.0.1:8080")
} }
destructor := func(value net.Conn) { destructor := func(value net.Conn) {
value.Close() value.Close()
} }
maxPoolSize := 10 maxPoolSize := int32(10)
pool := puddle.NewPool[net.Conn](&puddle.Config[int]{Constructor: constructor, Destructor: destructor, MaxSize: maxPoolSize}) pool, err := puddle.NewPool(&puddle.Config[net.Conn]{Constructor: constructor, Destructor: destructor, MaxSize: maxPoolSize})
if err != nil {
log.Fatal(err)
}
// Acquire resource from the pool. // Acquire resource from the pool.
res, err := pool.Acquire(context.Background()) res, err := pool.Acquire(context.Background())
if err != nil { if err != nil {
// ... log.Fatal(err)
} }
// Use resource. // Use resource.
_, err = res.Value().Write([]byte{1}) _, err = res.Value().Write([]byte{1})
if err != nil { if err != nil {
// ... log.Fatal(err)
} }
// Release when done. // Release when done.
res.Release() res.Release()
}
``` ```
## Status ## Status