1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-29 16:02:51 -05:00

core: more syncmap conversions

This commit is contained in:
bbedward
2025-11-15 20:00:47 -05:00
parent 67557555f2
commit aa1df8dfcf
3 changed files with 10 additions and 8 deletions

View File

@@ -33,10 +33,10 @@ package ext_workspace
import ( import (
"reflect" "reflect"
"sync"
"unsafe" "unsafe"
"github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client" "github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client"
"github.com/AvengeMedia/DankMaterialShell/core/pkg/syncmap"
) )
// registerServerProxy registers a proxy with a server-assigned ID. // registerServerProxy registers a proxy with a server-assigned ID.
@@ -63,7 +63,7 @@ func registerServerProxy(ctx *client.Context, proxy client.Proxy, serverID uint3
} }
objectsMapPtr := unsafe.Pointer(objectsField.UnsafeAddr()) objectsMapPtr := unsafe.Pointer(objectsField.UnsafeAddr())
objectsMap := (*sync.Map)(objectsMapPtr) objectsMap := (*syncmap.Map[uint32, client.Proxy])(objectsMapPtr)
objectsMap.Store(serverID, proxy) objectsMap.Store(serverID, proxy)
} }

View File

@@ -31,10 +31,10 @@ package wlr_output_management
import ( import (
"reflect" "reflect"
"sync"
"unsafe" "unsafe"
"github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client" "github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client"
"github.com/AvengeMedia/DankMaterialShell/core/pkg/syncmap"
) )
func registerServerProxy(ctx *client.Context, proxy client.Proxy, serverID uint32) { func registerServerProxy(ctx *client.Context, proxy client.Proxy, serverID uint32) {
@@ -49,7 +49,7 @@ func registerServerProxy(ctx *client.Context, proxy client.Proxy, serverID uint3
return return
} }
objectsMapPtr := unsafe.Pointer(objectsField.UnsafeAddr()) objectsMapPtr := unsafe.Pointer(objectsField.UnsafeAddr())
objectsMap := (*sync.Map)(objectsMapPtr) objectsMap := (*syncmap.Map[uint32, client.Proxy])(objectsMapPtr)
objectsMap.Store(serverID, proxy) objectsMap.Store(serverID, proxy)
} }

View File

@@ -6,11 +6,13 @@ import (
"net" "net"
"os" "os"
"sync" "sync"
"github.com/AvengeMedia/DankMaterialShell/core/pkg/syncmap"
) )
type Context struct { type Context struct {
conn *net.UnixConn conn *net.UnixConn
objects sync.Map // map[uint32]Proxy - thread-safe concurrent map objects syncmap.Map[uint32, Proxy] // map[uint32]Proxy - thread-safe concurrent map
currentID uint32 currentID uint32
idMu sync.Mutex // protects currentID increment idMu sync.Mutex // protects currentID increment
} }
@@ -32,7 +34,7 @@ func (ctx *Context) Unregister(p Proxy) {
func (ctx *Context) GetProxy(id uint32) Proxy { func (ctx *Context) GetProxy(id uint32) Proxy {
if val, ok := ctx.objects.Load(id); ok { if val, ok := ctx.objects.Load(id); ok {
return val.(Proxy) return val
} }
return nil return nil
} }
@@ -68,12 +70,12 @@ func (ctx *Context) GetDispatch() func() error {
} }
return func() error { return func() error {
val, ok := ctx.objects.Load(senderID) proxy, ok := ctx.objects.Load(senderID)
if !ok { if !ok {
return fmt.Errorf("%w (senderID=%d)", ErrDispatchSenderNotFound, senderID) return fmt.Errorf("%w (senderID=%d)", ErrDispatchSenderNotFound, senderID)
} }
sender, ok := val.(Dispatcher) sender, ok := proxy.(Dispatcher)
if !ok { if !ok {
return fmt.Errorf("%w (senderID=%d)", ErrDispatchSenderUnsupported, senderID) return fmt.Errorf("%w (senderID=%d)", ErrDispatchSenderUnsupported, senderID)
} }