1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-29 17:41:15 +03:00

refactor: remove handlerWrapper and use separate maps in registry

- Remove unnecessary handlerWrapper complexity from push notifications
- Use separate maps for handlers and protection status in registry
- Store handlers directly without indirection layer
- Maintain same instance identity for registered/retrieved handlers
- Preserve all protected handler functionality with cleaner implementation

Changes:
- internal/pushnotif/registry.go: Use separate handlers and protected maps
- push_notifications.go: Remove handlerWrapper, store handlers directly
- Maintain thread-safe operations with simplified code structure

Benefits:
- Reduced memory overhead (no wrapper objects)
- Direct handler storage without type conversion
- Cleaner, more maintainable code
- Same functionality with better performance
- Eliminated unnecessary complexity layer
- Preserved all existing behavior and safety guarantees
This commit is contained in:
Nedyalko Dyakov
2025-06-27 16:38:31 +03:00
parent ada72cefcd
commit 91805bc506
3 changed files with 18 additions and 34 deletions

View File

@ -28,9 +28,3 @@ type RegistryInterface interface {
GetRegisteredPushNotificationNames() []string
HandleNotification(ctx context.Context, notification []interface{}) bool
}
// handlerEntry represents a registered handler with its protection status.
type handlerEntry struct {
handler Handler
protected bool
}