Changes between Version 10 and Version 12 of Ticket #5874
- Timestamp:
- Feb 24, 2023, 6:56:05 PM (15 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #5874
- Property Milestone Alpha 27 → Work In Progress
-
Ticket #5874 – Description
v10 v12 1 We currently use std::thread in a number of places: 1 There are issues with our implementation: we use "naked" std::thread instead of cleverer solutions. 2 This, notably, means we fail to detect exceptions happening in the threads (see https://code.wildfiregames.com/rP22649#45341 ) 2 3 3 - net client (net session) Phab:D3877 4 - net server 5 - user reporter Phab:D4426 6 - sound 7 - texture converter Phab:D4425 8 - more? 4 [25656] implements a task manager. Now not every task wich is run concurently does need to create it's own std::thread. 9 5 6 Phab:D4956 does implement exception handling for tasks in the task manager. 10 7 11 Currently uses the threadpool 8 These tasks use the task manager: 12 9 - map generator 13 10 - pathfinder 14 11 15 There are issues with our implementation: we use "naked" std::thread instead of cleverer solutions. 16 This, notably, means we fail to detect exceptions happening in the threads (see https://code.wildfiregames.com/rP22649#45341 ) 17 A better architecture ought to be found and implemented. 12 These tasks should be adapted to use the task manager: 13 - user reporter Phab:D4426 14 - texture converter Phab:D4425 15 16 A task in the task manager should never 'wait' (for a condition_variable; for a mutex; for some time...) that would put the whole thread to sleep. Instead it would be better to run another task in the meantime and resume the original task later. Phab:D3877 or Phab:D4097 does extend the task manager to make that possible. These tasks rely on such a feature: 17 - net client (net session) Phab:D3877 18 - net server 19 - sound