(ctx context.Context, fn func(*sql.DB) error)
| 101 | } |
| 102 | |
| 103 | func (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 | |
| 117 | func (m *MemoryDatabase) AddMemory(ctx context.Context, memory database.UserMemory) error { |
| 118 | ctx, span := startMemorySpan(ctx, "add") |
no test coverage detected