diff --git a/config.go b/config.go index 4c6e70c..01f604f 100644 --- a/config.go +++ b/config.go @@ -16,7 +16,7 @@ type PoolConfig struct { EventsBufferSize int ConnectionConfig transport.ConnectionConfig WorkerFactory WorkerFactory - WorkerConfig *WorkerConfig + WorkerConfig WorkerConfig } type PoolOption func(*PoolConfig) error @@ -40,7 +40,7 @@ func GetDefaultPoolConfig() *PoolConfig { EventsBufferSize: 10, ConnectionConfig: *transport.GetDefaultConnectionConfig(), WorkerFactory: nil, - WorkerConfig: nil, + WorkerConfig: *GetDefaultWorkerConfig(), } } @@ -63,11 +63,9 @@ func ValidatePoolConfig(config *PoolConfig) error { return err } - if config.WorkerConfig != nil { - err = ValidateWorkerConfig(config.WorkerConfig) - if err != nil { - return err - } + err = ValidateWorkerConfig(&config.WorkerConfig) + if err != nil { + return err } return nil @@ -113,9 +111,9 @@ func WithConnectionConfig(cc transport.ConnectionConfig) PoolOption { } } -func WithWorkerConfig(wc *WorkerConfig) PoolOption { +func WithWorkerConfig(wc WorkerConfig) PoolOption { return func(c *PoolConfig) error { - err := ValidateWorkerConfig(wc) + err := ValidateWorkerConfig(&wc) if err != nil { return err } diff --git a/config_pool_test.go b/config_pool_test.go index 6a6aebc..2010e79 100644 --- a/config_pool_test.go +++ b/config_pool_test.go @@ -15,7 +15,7 @@ func TestNewPoolConfig(t *testing.T) { InboxBufferSize: 256, EventsBufferSize: 10, ConnectionConfig: *transport.GetDefaultConnectionConfig(), - WorkerConfig: nil, + WorkerConfig: *GetDefaultWorkerConfig(), WorkerFactory: nil, }) } @@ -27,7 +27,7 @@ func TestDefaultPoolConfig(t *testing.T) { InboxBufferSize: 256, EventsBufferSize: 10, ConnectionConfig: *transport.GetDefaultConnectionConfig(), - WorkerConfig: nil, + WorkerConfig: *GetDefaultWorkerConfig(), WorkerFactory: nil, }) } diff --git a/pool.go b/pool.go index 6139cc9..12531fa 100644 --- a/pool.go +++ b/pool.go @@ -101,7 +101,8 @@ func NewPool(ctx context.Context, config *PoolConfig, handler slog.Handler, if config.WorkerFactory == nil { config.WorkerFactory = func( ctx context.Context, id string, handler slog.Handler) (Worker, error) { - return NewWorker(ctx, id, config.WorkerConfig, handler) + wc := config.WorkerConfig + return NewWorker(ctx, id, &wc, handler) } }