Comments (4)
similar to my promise library too
https://github.com/spider-gazelle/promise?tab=readme-ov-file#promiseall
I'm all for this, much harder to shoot yourself in the foot and looks way better
from crystal.
RFC #3 had a #spawn(&)
method but it looks it didn't make it to the pull request.
The .wait(&)
method looks like a nice addition.
from crystal.
WaitGroup
is a low-level primitive and IMO shouldn't need to be super polished for convenience. The idea is that most people wouldn't use it directly, in favour of a higher level concurrency API (cf. #6468). At the moment such a higher level API is still missing. But once we complete that, I suppose there would be little reason to use WaitGroup
directly.
from crystal.
I think spawn
makes sense even for a low level API?
btw, would WaitGroup work for something like
select
when bail.receive
when wg.wait
end
That would allow to make it a basis in a worker-pool implementation, or maybe even have some wg.release
mechanism for when you want multiple workers to do something but first one done means we can release the others.
from crystal.
Related Issues (20)
- Compiler error when output directory for object file is missing HOT 3
- It's impossible to create a regex that is MULTILINE but not DOT_ALL HOT 2
- Error: read before assignment to local variable '' HOT 2
- `Enumerable` method to find the first truthy block result and return that result HOT 8
- Macro Code Coverage
- `MacroIf` then/else missing location information HOT 1
- Doc error for Channel#close, Channel#close? when channel is buffered channel.
- Invalid memory access in release mode with LLVM 18 HOT 2
- `Number.new` causes `IndexError` with blank value and `whitespace: false`
- Ensuring `class_getter` runs exactly once under concurrent access HOT 3
- Methods with a return type of `self` automatically return `self` HOT 3
- Store annotations within the node they annotate HOT 3
- Method overloads and type specificity are influenced by order of definition HOT 5
- Error: undefined method 'to_unsafe' for Foo (compile-time type is MyModule) HOT 4
- Filters do not work with dependencies tool on Windows HOT 1
- Zstd - "you've found a bug in the Crystal compiler. Please open an issue .. " HOT 2
- `XML::Error.errors` leaks memory HOT 15
- Nil assertion failed (NilAssertionError) HOT 2
- Setting instance variable of file-private type in def parameter breaks with restriction augmenter
- Error: can't restrict Array(A | B) to Array(A | B)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from crystal.