Skip to content

Commit bd8cb49

Browse files
committed
refactor(fund): Change to loop.
Signed-off-by: Sophia Koehler <[email protected]>
1 parent 2c897b5 commit bd8cb49

File tree

2 files changed

+24
-32
lines changed

2 files changed

+24
-32
lines changed

channel/funder_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ func testFunderCrossOverFunding(t *testing.T, n int) {
198198

199199
func TestEgoisticParticipantFunding(t *testing.T) {
200200
// Peers will randomly fund for each other.
201-
for i := 0; i < 10; i++ {
201+
for i := 0; i < 30; i++ {
202202
name := fmt.Sprintf("Egoistic Funding %v", i)
203203
t.Run(name, func(t *testing.T) { testEgoisticParticipantFunding(t) })
204204
}
@@ -235,7 +235,7 @@ func testEgoisticParticipantFunding(t *testing.T) {
235235
require.True(t, len(finishTimes) == n, "Length of indexes must be n")
236236
require.NoError(t, err)
237237

238-
t.Logf("Finish Times: %v", finishTimes)
238+
t.Logf("finishTimes: %v", finishTimes)
239239
// Check if finish time of egoistic funder is larger than finish time of non-egoistic funder.
240240
correct := finishTimes[egoisticIndex].Time > finishTimes[int(math.Abs(float64(1-egoisticIndex)))].Time
241241
// Use require.True to compare the finish times

channel/test/fund.go

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -36,38 +36,30 @@ func FundAll(ctx context.Context, funders []*channel.Funder, reqs []*pchannel.Fu
3636
var mutex sync.Mutex
3737

3838
var wg sync.WaitGroup
39-
wg.Add(2)
39+
wg.Add(len(funders))
4040

41-
go func() {
42-
defer wg.Done()
43-
startTime := time.Now()
44-
err := funders[egoisticIndex].Fund(ctx, *reqs[egoisticIndex])
45-
require.NoError(t, err)
46-
finishTime := time.Now()
47-
require.NoError(t, err)
48-
mutex.Lock()
49-
finishTimes[egoisticIndex] = FunderFinishTime{
50-
Index: egoisticIndex,
51-
Time: finishTime.Sub(startTime),
52-
}
53-
mutex.Unlock()
54-
}()
41+
waitTime := 2 * time.Second
5542

56-
go func() {
57-
defer wg.Done()
58-
time.Sleep(2 * time.Second)
59-
startTime := time.Now()
60-
err := funders[1-egoisticIndex].Fund(ctx, *reqs[1-egoisticIndex])
61-
require.NoError(t, err)
62-
finishTime := time.Now()
63-
require.NoError(t, err)
64-
mutex.Lock()
65-
finishTimes[1-egoisticIndex] = FunderFinishTime{
66-
Index: 1 - egoisticIndex,
67-
Time: finishTime.Sub(startTime),
68-
}
69-
mutex.Unlock()
70-
}()
43+
for i := range funders {
44+
i := i
45+
go func() {
46+
defer wg.Done()
47+
if i != egoisticIndex {
48+
time.Sleep(waitTime)
49+
}
50+
startTime := time.Now()
51+
err := funders[i].Fund(ctx, *reqs[i])
52+
require.NoError(t, err)
53+
finishTime := time.Now()
54+
mutex.Lock()
55+
finishTimes[i] = FunderFinishTime{
56+
Index: i,
57+
Time: finishTime.Sub(startTime),
58+
}
59+
mutex.Unlock()
60+
}()
61+
62+
}
7163

7264
wg.Wait()
7365
return finishTimes, nil

0 commit comments

Comments
 (0)