From f450c26d843b8d3dd70b3a45c9862e4c7d256206 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Wed, 10 Jan 2024 16:27:50 -0300 Subject: [PATCH] update go-nostr and xsync. --- go.mod | 6 +++--- go.sum | 8 ++++---- helpers.go | 6 ------ listener.go | 6 +++--- relay.go | 4 ++-- 5 files changed, 12 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 21180a8..de467c7 100644 --- a/go.mod +++ b/go.mod @@ -1,12 +1,12 @@ module github.com/fiatjaf/khatru -go 1.21.0 +go 1.21.4 require ( github.com/fasthttp/websocket v1.5.3 github.com/fiatjaf/eventstore v0.3.1 - github.com/nbd-wtf/go-nostr v0.27.1 - github.com/puzpuzpuz/xsync/v2 v2.5.1 + github.com/nbd-wtf/go-nostr v0.28.0 + github.com/puzpuzpuz/xsync/v3 v3.0.2 github.com/rs/cors v1.7.0 github.com/sebest/xff v0.0.0-20210106013422-671bd2870b3a golang.org/x/exp v0.0.0-20231006140011-7918f672742d diff --git a/go.sum b/go.sum index dfb4128..16e33c3 100644 --- a/go.sum +++ b/go.sum @@ -113,15 +113,15 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.18 h1:JL0eqdCOq6DJVNPSvArO/bIV9/P7fbGrV00LZHc+5aI= github.com/mattn/go-sqlite3 v1.14.18/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/nbd-wtf/go-nostr v0.27.1 h1:DAwXpAUGxq3/B8KZIWlZmJIoDNkMvlKqQwB/OM/49xk= -github.com/nbd-wtf/go-nostr v0.27.1/go.mod h1:bkffJI+x914sPQWum9ZRUn66D7NpDnAoWo1yICvj3/0= +github.com/nbd-wtf/go-nostr v0.28.0 h1:SLYyoFeCNYb7HyWtmPUzD6rifBOMR66Spj5fzCk+5GE= +github.com/nbd-wtf/go-nostr v0.28.0/go.mod h1:OQ8sNLFJnsj17BdqZiLSmjJBIFTfDqckEYC3utS4qoY= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/puzpuzpuz/xsync/v2 v2.5.1 h1:mVGYAvzDSu52+zaGyNjC+24Xw2bQi3kTr4QJ6N9pIIU= -github.com/puzpuzpuz/xsync/v2 v2.5.1/go.mod h1:gD2H2krq/w52MfPLE+Uy64TzJDVY7lP2znR9qmR35kU= +github.com/puzpuzpuz/xsync/v3 v3.0.2 h1:3yESHrRFYr6xzkz61LLkvNiPFXxJEAABanTQpKbAaew= +github.com/puzpuzpuz/xsync/v3 v3.0.2/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee h1:8Iv5m6xEo1NR1AvpV+7XmhI4r39LGNzwUL4YpMuL5vk= diff --git a/helpers.go b/helpers.go index f032128..a58066d 100644 --- a/helpers.go +++ b/helpers.go @@ -1,19 +1,13 @@ package khatru import ( - "hash/maphash" "net/http" "strconv" "strings" - "unsafe" "github.com/nbd-wtf/go-nostr" ) -func pointerHasher[V any](_ maphash.Seed, k *V) uint64 { - return uint64(uintptr(unsafe.Pointer(k))) -} - func isOlder(previous, next *nostr.Event) bool { return previous.CreatedAt < next.CreatedAt || (previous.CreatedAt == next.CreatedAt && previous.ID > next.ID) diff --git a/listener.go b/listener.go index 0ccb5ca..669dacd 100644 --- a/listener.go +++ b/listener.go @@ -5,7 +5,7 @@ import ( "fmt" "github.com/nbd-wtf/go-nostr" - "github.com/puzpuzpuz/xsync/v2" + "github.com/puzpuzpuz/xsync/v3" ) type Listener struct { @@ -13,7 +13,7 @@ type Listener struct { cancel context.CancelCauseFunc } -var listeners = xsync.NewTypedMapOf[*WebSocket, *xsync.MapOf[string, *Listener]](pointerHasher[WebSocket]) +var listeners = xsync.NewMapOf[*WebSocket, *xsync.MapOf[string, *Listener]]() func GetListeningFilters() nostr.Filters { respfilters := make(nostr.Filters, 0, listeners.Size()*2) @@ -49,7 +49,7 @@ func GetListeningFilters() nostr.Filters { func setListener(id string, ws *WebSocket, filters nostr.Filters, cancel context.CancelCauseFunc) { subs, _ := listeners.LoadOrCompute(ws, func() *xsync.MapOf[string, *Listener] { - return xsync.NewMapOf[*Listener]() + return xsync.NewMapOf[string, *Listener]() }) subs.Store(id, &Listener{filters: filters, cancel: cancel}) } diff --git a/relay.go b/relay.go index c1946f9..f3c9eca 100644 --- a/relay.go +++ b/relay.go @@ -10,7 +10,7 @@ import ( "github.com/fasthttp/websocket" "github.com/nbd-wtf/go-nostr" "github.com/nbd-wtf/go-nostr/nip11" - "github.com/puzpuzpuz/xsync/v2" + "github.com/puzpuzpuz/xsync/v3" ) func NewRelay() *Relay { @@ -29,7 +29,7 @@ func NewRelay() *Relay { CheckOrigin: func(r *http.Request) bool { return true }, }, - clients: xsync.NewTypedMapOf[*websocket.Conn, struct{}](pointerHasher[websocket.Conn]), + clients: xsync.NewMapOf[*websocket.Conn, struct{}](), serveMux: &http.ServeMux{}, WriteWait: 10 * time.Second,