@@ -266,15 +266,19 @@ func (s *ArduinoCoreServerImpl) LoadSketch(ctx context.Context, req *rpc.LoadSke
266
266
267
267
// Compile FIXMEDOC
268
268
func (s * ArduinoCoreServerImpl ) Compile (req * rpc.CompileRequest , stream rpc.ArduinoCoreService_CompileServer ) error {
269
+ outStream , outCtx := utils .FeedStreamTo (func (data []byte ) { stream .Send (& rpc.CompileResponse {OutStream : data }) })
270
+ errStream , errCtx := utils .FeedStreamTo (func (data []byte ) { stream .Send (& rpc.CompileResponse {ErrStream : data }) })
269
271
resp , err := compile .Compile (
270
- stream .Context (), req ,
271
- utils .FeedStreamTo (func (data []byte ) { stream .Send (& rpc.CompileResponse {OutStream : data }) }),
272
- utils .FeedStreamTo (func (data []byte ) { stream .Send (& rpc.CompileResponse {ErrStream : data }) }),
272
+ stream .Context (), req , outStream , errStream ,
273
273
func (p * rpc.TaskProgress ) { stream .Send (& rpc.CompileResponse {Progress : p }) },
274
274
false ) // Set debug to false
275
+ outStream .Close ()
276
+ errStream .Close ()
275
277
if err != nil {
276
278
return convertErrorToRPCStatus (err )
277
279
}
280
+ <- outCtx .Done ()
281
+ <- errCtx .Done ()
278
282
return stream .Send (resp )
279
283
}
280
284
@@ -345,27 +349,31 @@ func (s *ArduinoCoreServerImpl) PlatformList(ctx context.Context, req *rpc.Platf
345
349
346
350
// Upload FIXMEDOC
347
351
func (s * ArduinoCoreServerImpl ) Upload (req * rpc.UploadRequest , stream rpc.ArduinoCoreService_UploadServer ) error {
348
- resp , err := upload . Upload (
349
- stream .Context (), req ,
350
- utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. UploadResponse { OutStream : data }) }),
351
- utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. UploadResponse { ErrStream : data }) }),
352
- )
352
+ outStream , outCtx := utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. UploadResponse { OutStream : data }) })
353
+ errStream , errCtx := utils . FeedStreamTo ( func ( data [] byte ) { stream .Send ( & rpc. UploadResponse { ErrStream : data }) })
354
+ resp , err := upload . Upload ( stream . Context (), req , outStream , errStream )
355
+ outStream . Close ()
356
+ errStream . Close ( )
353
357
if err != nil {
354
358
return convertErrorToRPCStatus (err )
355
359
}
360
+ <- outCtx .Done ()
361
+ <- errCtx .Done ()
356
362
return stream .Send (resp )
357
363
}
358
364
359
365
// UploadUsingProgrammer FIXMEDOC
360
366
func (s * ArduinoCoreServerImpl ) UploadUsingProgrammer (req * rpc.UploadUsingProgrammerRequest , stream rpc.ArduinoCoreService_UploadUsingProgrammerServer ) error {
361
- resp , err := upload . UsingProgrammer (
362
- stream .Context (), req ,
363
- utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. UploadUsingProgrammerResponse { OutStream : data }) }),
364
- utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. UploadUsingProgrammerResponse { ErrStream : data }) }),
365
- )
367
+ outStream , outCtx := utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. UploadUsingProgrammerResponse { OutStream : data }) })
368
+ errStream , errCtx := utils . FeedStreamTo ( func ( data [] byte ) { stream .Send ( & rpc. UploadUsingProgrammerResponse { ErrStream : data }) })
369
+ resp , err := upload . UsingProgrammer ( stream . Context (), req , outStream , errStream )
370
+ outStream . Close ()
371
+ errStream . Close ( )
366
372
if err != nil {
367
373
return convertErrorToRPCStatus (err )
368
374
}
375
+ <- outCtx .Done ()
376
+ <- errCtx .Done ()
369
377
return stream .Send (resp )
370
378
}
371
379
@@ -377,14 +385,16 @@ func (s *ArduinoCoreServerImpl) SupportedUserFields(ctx context.Context, req *rp
377
385
378
386
// BurnBootloader FIXMEDOC
379
387
func (s * ArduinoCoreServerImpl ) BurnBootloader (req * rpc.BurnBootloaderRequest , stream rpc.ArduinoCoreService_BurnBootloaderServer ) error {
380
- resp , err := upload . BurnBootloader (
381
- stream .Context (), req ,
382
- utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. BurnBootloaderResponse { OutStream : data }) }),
383
- utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. BurnBootloaderResponse { ErrStream : data }) }),
384
- )
388
+ outStream , outCtx := utils . FeedStreamTo ( func ( data [] byte ) { stream . Send ( & rpc. BurnBootloaderResponse { OutStream : data }) })
389
+ errStream , errCtx := utils . FeedStreamTo ( func ( data [] byte ) { stream .Send ( & rpc. BurnBootloaderResponse { ErrStream : data }) })
390
+ resp , err := upload . BurnBootloader ( stream . Context (), req , outStream , errStream )
391
+ outStream . Close ()
392
+ errStream . Close ( )
385
393
if err != nil {
386
394
return convertErrorToRPCStatus (err )
387
395
}
396
+ <- outCtx .Done ()
397
+ <- errCtx .Done ()
388
398
return stream .Send (resp )
389
399
}
390
400
0 commit comments