Commit graph

11 commits

Author SHA1 Message Date
phosit
d85eef067b Make TaskManager independent of Future
`TaskManager` and `Future` where coupled together. When a task is pushed
a future is returned. Also the `Future::Wrap` function was inconvenient
to use.
Now `TaskManager::PushTask` doesn't return a `Future` anymore. This
alows to use different `Future`-like types.
Also it's possible to easily use the `Future` with a different type that
implements a `PushTask` function.
2025-08-28 20:01:39 +02:00
Ralph Sennhauser
aed1570040
Fix some includes in source/ps
Make include-what-you-use happy with some files in source/ps and fix
what needs to be fixed.

Ref: #8086
Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
2025-07-28 16:59:04 +02:00
phosit
31d9b0ed05 Make the TaskManager a automatic livetime object
This way the destructor can be used for cleanup.
2024-11-17 18:03:49 +01:00
vladislavbelov
ffc4a56b9f Revert non-ASCII characters from source and configuration files introduced in 157c6af18e.
Fixes #6846

Differential Revision: https://code.wildfiregames.com/D5185
This was SVN commit r27965.
2023-12-03 00:30:12 +00:00
bb
157c6af18e Make the space in 0 A.D. non-breaking throughout the codebase.
Avoid cases of filenames
Update years in terms and other legal(ish) documents
Don't update years in license headers, since change is not meaningful

Will add linter rule in seperate commit

Happy recompiling everyone!

Original Patch By: Nescio
Comment By: Gallaecio
Differential Revision: D2620
This was SVN commit r27786.
2023-07-27 20:54:46 +00:00
vladislavbelov
87843b5c4e Remove unused members of TaskManager::Impl missed in 1b35d36daa.
Patch By: phosit
Differential Revision: https://code.wildfiregames.com/D4826
This was SVN commit r27231.
2022-11-18 19:32:20 +00:00
vladislavbelov
d286080285 Fixes the default number of workers in TaskManager in case of zero hardware_concurrency.
Differential Revision: https://code.wildfiregames.com/D4768
This was SVN commit r27064.
2022-08-20 20:40:05 +00:00
wraitii
aaa95dc00b Minor cleanup in Future and TaskManager
- Remove redundant std::move() calls
- default ctor/dtor in place of empty {}

Patch by: jprahman
Comments by; phosit

Accepted by: vladislavbelov
Differential Revision: https://code.wildfiregames.com/D4675
This was SVN commit r26916.
2022-06-02 12:59:25 +00:00
wraitii
f3efe47ff6 Default-init atomics in TaskManager::Impl
std::atomic<bool> does not value-initialise the boolean.
This caused windows tests to use way too much CPU and fail.

Differential Revision: https://code.wildfiregames.com/D4089
This was SVN commit r25687.
2021-06-05 09:48:41 +00:00
wraitii
69901d9ffb Tweaks to TaskManager code
Reported by: Vladislav
Differential Revision: https://code.wildfiregames.com/D4077
This was SVN commit r25667.
2021-06-04 12:55:15 +00:00
wraitii
1b35d36daa Implement a global task manager using a pool of worker threads
Tasks are simple callables (e.g. lambdas), and can be pushed with 2
priority levels. Pushing a task returns a future.
Futures can be waited on, can return results, and can be cancelled
deterministically. Futures can also not be waited on.

This gives 'hardware concurrency - 1' threads to maximize CPU usage in a
work-stealing workflow.

Reviewed by: vladislavbelov
Refs #5874

Differential Revision: https://code.wildfiregames.com/D3848
This was SVN commit r25656.
2021-06-03 14:48:38 +00:00