Comments (4)
The run()
function runs the main future. When the main future is idle (because it's waiting for I/O or timers or something), it runs other tasks on the executor. When the main future is done, it exits.
If you don't call run()
at all, spawned tasks will simply be waiting in the executor's task queue.
If you give the main future a timer of 1 hour, it will run spawned tasks for 1 hour and then stop everything.
If you give it an unresolved future, it will run spawned tasks forever.
from async-executor.
Ah yes, that's completely normal :)
Note that the Executor::run()
function doesn't run until all tasks have been processed - it only runs until the main future passed to it completes. So if you do ex.run(yield_now())
, then some tasks will be run but then as soon as yield_now()
completes, the whole run()
stops.
At that point, you can call run()
again with a new future if you want.
from async-executor.
Okay I see, does it means that the main future controls all the runtime of the others tasks spawned inside the executor?
So if I give a Timer of 1 hour, it will run all spawned tasks for 1 hour, if I give an unresolved future then it will run forever?
from async-executor.
Okay got it! :)
Itβs more clear now, thank you! π
I close the issue. ;)
from async-executor.
Related Issues (20)
- Wake up threads more aggressively if there is known work to do HOT 3
- 1.9.0 may need to be yanked HOT 12
- A leaked Executor does not need to track active tasks HOT 2
- Add hook to be called when new pending task is available HOT 7
- Update to fastrand 2.0.0 isn't published HOT 3
- After non-breaking v1.5.2 release some types suddenly became non-send HOT 4
- Stack overflow when updating from 1.5.1 to 1.5.3 HOT 9
- Panic with version 1.5.3 HOT 1
- open-rmf/rmf_site freezes when updating from 1.5.1 to 1.5.3 HOT 4
- Can you give me an example on how to spawn tasks in a loop but limit total number of tasks? HOT 1
- BorrowError on a server with a huge amount of tasks HOT 2
- Push task directly to the local queue HOT 1
- "Next task" optimization HOT 2
- v1.7 no longer compiles for `wasm32` HOT 6
- Allow creating tasks with metadata
- try_tick considered harmful
- Panic on multithreaded browser Wasm HOT 4
- Efficient way of batch spawning a large number of tasks HOT 3
- MSRV might be set too low HOT 1
- Tick counter can overflow on debug mode
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 async-executor.