MCPcopy Create free account
hub / github.com/compozy/agh / holdResourceWriteLock

Function holdResourceWriteLock

internal/resources/kernel_test.go:1243–1276  ·  view source on GitHub ↗
(ctx context.Context, t *testing.T, db *sql.DB)

Source from the content-addressed store, hash-verified

1241}
1242
1243func holdResourceWriteLock(ctx context.Context, t *testing.T, db *sql.DB) {
1244 t.Helper()
1245
1246 lockConn, err := db.Conn(ctx)
1247 if err != nil {
1248 t.Fatalf("db.Conn() error = %v", err)
1249 }
1250 t.Cleanup(func() {
1251 if closeErr := lockConn.Close(); closeErr != nil {
1252 t.Fatalf("lockConn.Close() error = %v", closeErr)
1253 }
1254 })
1255
1256 if _, err := lockConn.ExecContext(ctx, "BEGIN IMMEDIATE"); err != nil {
1257 t.Fatalf("BEGIN IMMEDIATE lock error = %v", err)
1258 }
1259
1260 releaseDone := make(chan error, 1)
1261 timer := time.AfterFunc(10*time.Millisecond, func() {
1262 _, commitErr := lockConn.ExecContext(ctx, "COMMIT")
1263 releaseDone <- commitErr
1264 })
1265 t.Cleanup(func() {
1266 if timer.Stop() {
1267 if _, err := lockConn.ExecContext(ctx, "COMMIT"); err != nil {
1268 t.Fatalf("manual lock release error = %v", err)
1269 }
1270 return
1271 }
1272 if err := <-releaseDone; err != nil {
1273 t.Fatalf("timed lock release error = %v", err)
1274 }
1275 })
1276}
1277
1278func testDaemonActor() MutationActor {
1279 return MutationActor{

Calls 4

CleanupMethod · 0.80
CloseMethod · 0.65
ExecContextMethod · 0.65
StopMethod · 0.65

Tested by

no test coverage detected