Monorepo for Tangled tangled.org
6

Configure Feed

Select the types of activity you want to include in your feed.

at icy/yrolzt 897 B View raw
1package knotacl 2 3import ( 4 "context" 5 "log/slog" 6 "time" 7 8 "tangled.org/core/appview/db" 9 "tangled.org/core/appview/knotcompat" 10) 11 12const latchOpTimeout = 5 * time.Second 13 14type latch struct { 15 execer db.Execer 16 log *slog.Logger 17} 18 19func NewLatch(execer db.Execer, logger *slog.Logger) knotcompat.NativeLatch { 20 return latch{execer: execer, log: logger} 21} 22 23func (l latch) IsNative(host string) bool { 24 ctx, cancel := context.WithTimeout(context.Background(), latchOpTimeout) 25 defer cancel() 26 native, err := db.IsKnotAclNative(ctx, l.execer, host) 27 return err == nil && native 28} 29 30func (l latch) MarkNative(host string) { 31 ctx, cancel := context.WithTimeout(context.Background(), latchOpTimeout) 32 defer cancel() 33 if err := db.MarkKnotAclNative(ctx, l.execer, host); err != nil { 34 l.log.Error("failed to persist native knot latch, it will be re-probed after restart", "host", host, "err", err) 35 } 36}