@@ -63,7 +63,7 @@ func (a *Aggregator) AggregateSignatures(ctx context.Context, unsignedMessage *a
6363 defer signatureFetchCancel ()
6464
6565 // Fetch signatures from validators concurrently.
66- signatureFetchResultChan := make (chan * signatureFetchResult )
66+ signatureFetchResultChan := make (chan * signatureFetchResult , len ( a . validators ) )
6767 for i , validator := range a .validators {
6868 var (
6969 i = i
@@ -86,7 +86,10 @@ func (a *Aggregator) AggregateSignatures(ctx context.Context, unsignedMessage *a
8686 "err" , err ,
8787 "msgID" , unsignedMessage .ID (),
8888 )
89- signatureFetchResultChan <- nil
89+ select {
90+ case <- signatureFetchCtx .Done ():
91+ case signatureFetchResultChan <- nil :
92+ }
9093 return
9194 }
9295
@@ -102,14 +105,20 @@ func (a *Aggregator) AggregateSignatures(ctx context.Context, unsignedMessage *a
102105 "index" , i ,
103106 "msgID" , unsignedMessage .ID (),
104107 )
105- signatureFetchResultChan <- nil
108+ select {
109+ case <- signatureFetchCtx .Done ():
110+ case signatureFetchResultChan <- nil :
111+ }
106112 return
107113 }
108114
109- signatureFetchResultChan <- & signatureFetchResult {
115+ select {
116+ case <- signatureFetchCtx .Done ():
117+ case signatureFetchResultChan <- & signatureFetchResult {
110118 sig : signature ,
111119 index : i ,
112120 weight : validator .Weight ,
121+ }:
113122 }
114123 }()
115124 }
0 commit comments