-
Notifications
You must be signed in to change notification settings - Fork 856
[giga] pipelining skeleton #2631
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2631 +/- ##
=======================================
Coverage 43.71% 43.72%
=======================================
Files 1902 1906 +4
Lines 158677 158742 +65
=======================================
+ Hits 69373 69407 +34
- Misses 82914 82943 +29
- Partials 6390 6392 +2
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
I can't find any The questions I would ask are:
|
5dc7490 to
8b2aa3f
Compare
| go func() { | ||
| for block := range t.blocks { | ||
| rcs := t.schedulerFn(block, t.receipts) | ||
| t.commitFn(rcs) | ||
| t.changeSets <- rcs | ||
| } | ||
| }() |
Check notice
Code scanning / CodeQL
Spawning a Go routine Note
| go func() { | ||
| for receipt := range t.receipts { | ||
| t.sinkFn(receipt) | ||
| } | ||
| }() |
Check notice
Code scanning / CodeQL
Spawning a Go routine Note
| go func() { | ||
| for changeSet := range t.changeSets { | ||
| t.sinkFn(changeSet) | ||
| } | ||
| }() |
Check notice
Code scanning / CodeQL
Spawning a Go routine Note
| go func() { | ||
| for input := range t.inputs { | ||
| completionSignal := make(chan struct{}, 1) | ||
| completionSignals.Store(input.GetID(), completionSignal) | ||
| output := t.processFn(input) | ||
| prevCompletionSignal, ok := completionSignals.Load(input.GetID() - 1) | ||
| // in practice it's almost impossible for ok == false, but we'll handle it anyway | ||
| for !ok { | ||
| time.Sleep(10 * time.Millisecond) | ||
| prevCompletionSignal, ok = completionSignals.Load(input.GetID() - 1) | ||
| } | ||
| <-prevCompletionSignal.(chan struct{}) | ||
| t.outputs <- output | ||
| completionSignal <- struct{}{} | ||
| completionSignals.Delete(input.GetID() - 1) | ||
| } | ||
| }() |
Check notice
Code scanning / CodeQL
Spawning a Go routine Note
Describe your changes and provide context
Create skeleton code and concurrency control for the following model:
Testing performed to validate your change
unit test for concurrency control