• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lightningnetwork / lnd / 12583319996

02 Jan 2025 01:38PM UTC coverage: 57.522% (-1.1%) from 58.598%
12583319996

Pull #9361

github

starius
fn/ContextGuard: use context.AfterFunc to wait

Simplifies context cancellation handling by using context.AfterFunc instead of a
goroutine to wait for context cancellation. This approach avoids the overhead of
a goroutine during the waiting period.

For ctxQuitUnsafe, since g.quit is closed only in the Quit method (which also
cancels all associated contexts), waiting on context cancellation ensures the
same behavior without unnecessary dependency on g.quit.

Added a test to ensure that the Create method does not launch any goroutines.
Pull Request #9361: fn: optimize context guard

102587 of 178344 relevant lines covered (57.52%)

24734.33 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/htlcswitch/hodl/config_dev.go
1
//go:build dev
2
// +build dev
3

4
package hodl
5

6
// Config is a struct enumerating the possible command line flags that are used
7
// to activate specific hodl modes.
8
//
9
// NOTE: THESE FLAGS ARE INTENDED FOR TESTING PURPOSES ONLY. ACTIVATING THESE
10
// FLAGS IN PRODUCTION WILL VIOLATE CRITICAL ASSUMPTIONS MADE BY THIS SOFTWARE.
11
type Config struct {
12
        ExitSettle bool `long:"exit-settle" description:"Instructs the node to drop ADDs for which it is the exit node, and to not settle back to the sender"`
13

14
        AddIncoming bool `long:"add-incoming" description:"Instructs the node to drop incoming ADDs before processing them in the incoming link"`
15

16
        SettleIncoming bool `long:"settle-incoming" description:"Instructs the node to drop incoming SETTLEs before processing them in the incoming link"`
17

18
        FailIncoming bool `long:"fail-incoming" description:"Instructs the node to drop incoming FAILs before processing them in the incoming link"`
19

20
        AddOutgoing bool `long:"add-outgoing" description:"Instructs the node to drop outgoing ADDs before applying them to the channel state"`
21

22
        SettleOutgoing bool `long:"settle-outgoing" description:"Instructs the node to drop outgoing SETTLEs before applying them to the channel state"`
23

24
        FailOutgoing bool `long:"fail-outgoing" description:"Instructs the node to drop outgoing FAILs before applying them to the channel state"`
25

26
        Commit bool `long:"commit" description:"Instructs the node to add HTLCs to its local commitment state and to open circuits for any ADDs, but abort before committing the changes"`
27

28
        BogusSettle bool `long:"bogus-settle" description:"Instructs the node to settle back any incoming HTLC with a bogus preimage"`
29
}
30

31
// Mask extracts the flags specified in the configuration, composing a Mask from
32
// the active flags.
33
func (c *Config) Mask() Mask {
×
34
        var flags []Flag
×
35

×
36
        if c.ExitSettle {
×
37
                flags = append(flags, ExitSettle)
×
38
        }
×
39
        if c.AddIncoming {
×
40
                flags = append(flags, AddIncoming)
×
41
        }
×
42
        if c.SettleIncoming {
×
43
                flags = append(flags, SettleIncoming)
×
44
        }
×
45
        if c.FailIncoming {
×
46
                flags = append(flags, FailIncoming)
×
47
        }
×
48
        if c.AddOutgoing {
×
49
                flags = append(flags, AddOutgoing)
×
50
        }
×
51
        if c.SettleOutgoing {
×
52
                flags = append(flags, SettleOutgoing)
×
53
        }
×
54
        if c.FailOutgoing {
×
55
                flags = append(flags, FailOutgoing)
×
56
        }
×
57
        if c.Commit {
×
58
                flags = append(flags, Commit)
×
59
        }
×
60
        if c.BogusSettle {
×
61
                flags = append(flags, BogusSettle)
×
62
        }
×
63

64
        // NOTE: The value returned here will only honor the configuration if
65
        // the dev build flag is present. In production, this method always
66
        // returns hodl.MaskNone and Active(*) always returns false.
67
        return MaskFromFlags(flags...)
×
68
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc