MCPcopy
hub / github.com/docker/docker-agent / withWriteLock

Method withWriteLock

pkg/memory/database/sqlite/sqlite.go:103–115  ·  view source on GitHub ↗
(ctx context.Context, fn func(*sql.DB) error)

Source from the content-addressed store, hash-verified

101}
102
103func (m *MemoryDatabase) withWriteLock(ctx context.Context, fn func(*sql.DB) error) error {
104 db, err := m.ensureDB(ctx)
105 if err != nil {
106 return err
107 }
108
109 lock := database.NewFileLock(m.lockPath)
110 if err := lock.Lock(ctx); err != nil {
111 return err
112 }
113 defer func() { _ = lock.Unlock() }()
114 return fn(db)
115}
116
117func (m *MemoryDatabase) AddMemory(ctx context.Context, memory database.UserMemory) error {
118 ctx, span := startMemorySpan(ctx, "add")

Callers 3

AddMemoryMethod · 0.95
DeleteMemoryMethod · 0.95
UpdateMemoryMethod · 0.95

Calls 4

ensureDBMethod · 0.95
LockMethod · 0.95
UnlockMethod · 0.95
NewFileLockFunction · 0.92

Tested by

no test coverage detected