Commit Graph

55 Commits

Author SHA1 Message Date
7832681ba7 Updated the readme. 2023-01-09 21:15:56 +01:00
499cde11d2 Work on fixing compile. 2023-01-09 14:10:42 +01:00
652dbff8bf Updated register_types.h and cpp to the current godot 4 style. 2023-01-08 15:55:39 +01:00
6990f8201a Handle properly when use_threads is switched from false to true. Also make sure to check whether the update signal is connected or not before trying to set it up. 2022-09-18 10:40:06 +02:00
5f5ac160c5 Now the target fps is customizable for ThreadPool when threading is not enabled. 2022-09-17 23:30:15 +02:00
b76e803437 Backported the improvements from the pandemonium engine. Also fixes #1 . Thanks. 2022-09-17 22:58:31 +02:00
0917511d04 Improve the logic int _thread_finished a bit. It saves a few _thread_finished calls in certain situations. 2022-02-19 16:30:34 +01:00
1e2a611ebd Check whether a job is cancelled in ThreadPool's update(). Also Improved the logic of the worker thread func a bit. 2022-02-14 12:44:09 +01:00
c401b7a027 More work on fixing the compile for 4.0. 2022-02-08 11:51:46 +01:00
2192f2c54c Work on fixing compile for 4.0. 2022-02-07 00:21:17 +01:00
06c56fcb37 Updated the copyright headers. 2022-01-12 22:23:30 +01:00
9ae53cdd30 Re-extracted class docs. 2022-01-12 22:23:22 +01:00
a02955e929 Clean up the logic of a few methods in the ThreadPool singleton. 2021-10-31 12:31:15 +01:00
0aa6ec8700 Decrease the delay a bit in cancel_job_wait. 2021-10-31 12:12:48 +01:00
59ba27f161 Don't use the _queue.write if it's not needed. 2021-10-31 12:12:27 +01:00
c0a2d3bbe5 Removed ancient create_job methods. 2021-10-31 12:09:48 +01:00
3bf2cae157 Added a has_job getter to the ThreadPool singleton. 2021-10-31 12:06:00 +01:00
1ed776e266 Renamed cancel_task to cancel_job, and cancel_task_wait to cance_job_wait 2021-10-31 12:01:10 +01:00
aa7be7b43a Add 2 missing properties to ThreadPoolJob. 2021-10-31 11:59:18 +01:00
b2e8c81539 Update the copyright texts for 2021. 2021-04-19 10:14:06 +02:00
da4e049da0 Updated for the new 3.2 godot branch - Threading/Semaphore refactor - (f15f5b45781eb3de8e5811400f654e3e49580149). 2021-02-20 22:42:20 +01:00
72049428df Fix compile for 4.0. 2021-02-06 11:53:02 +01:00
bc0d2f6deb Fix race condition in ThreadPool. Also replaced _THREAD_SAFE_METHOD_-s to _THREAD_SAFE_LOCK_-s and _THREAD_SAFE_UNLOCK_-s in the same class. 2020-10-20 22:06:08 +02:00
b1030eaf92 Removed the copyright header from config.py, as utf-8 characters apparently can cause issues. 2020-08-08 20:03:49 +02:00
b4cda4e527 Now setting thread_count to 0 or less means get the processor count, and add it to it (it is negative). Also added a fallback thread count, in case it ends up being invalid. (Like get_porocessor_count returns something bogus, or you give it a too high number.) 2020-08-04 18:09:21 +02:00
a9d55cc1c4 Cleanup ThreadPoolExecuteJob's _execute. 2020-08-04 15:25:06 +02:00
862a366e9a execute() now properly resets the current run stage. 2020-08-04 15:24:12 +02:00
0297e4d86d should_so should return true at the end. 2020-08-04 15:15:49 +02:00
ff3224f7d0 Added reset_stages() to ThreadPoolJob. 2020-08-04 14:50:41 +02:00
bbfa838011 Comment. 2020-08-04 14:36:30 +02:00
db1d5d1d81 Remove limit execution time bool, as it's trivial to check for the same thing. 2020-08-04 10:45:32 +02:00
262cdb6638 Fix typo. 2020-08-04 10:39:11 +02:00
1473e2b5f1 Set start time in execute(). 2020-08-04 10:21:24 +02:00
164ad82feb Typo. 2020-07-28 15:23:05 +02:00
f640c40564 Tweaks. 2020-07-28 15:22:02 +02:00
97fc7132db More tweaks. 2020-07-28 15:20:56 +02:00
1a7c4e69a5 Proper Readme.md. 2020-07-28 15:13:59 +02:00
93320fe864 Add a completed signal to the jobs. 2020-06-22 02:32:02 +02:00
2808b32eba Sync classref with current source. 2020-06-20 23:34:03 +02:00
acc7759682 4.0 compile fix. 2020-06-20 22:36:49 +02:00
c2aa301896 Fix single threaded logic. 2020-05-30 20:19:43 +02:00
3891a9b68d Separated the job into ThreadPoolJob and ThreadPoolExecuteJob. This design makes everything more resilient to crashes, as it encourages writing encapsulated standalone job classes. The execute job can still be used to just run methods/functions in separate threads. 2020-05-30 16:20:53 +02:00
5093853b3f Small fixes. 2020-05-24 21:17:32 +02:00
d182f9a24f Also invert the logic. 2020-05-24 20:07:30 +02:00
967b21da87 Fix typo. 2020-05-24 20:00:49 +02:00
7046fa7b08 Invert the logic of the 2 control flow functions name. 2020-05-24 19:59:40 +02:00
c69a2a9db4 When not using threading just return the head of the queue in get_running_job. 2020-05-24 19:58:09 +02:00
61fffea0a4 Tasks can be cancelled now. 2020-05-24 19:52:27 +02:00
222e9fa6cd Now the module actually works. 2020-05-24 19:04:02 +02:00
ded9df9772 Setup the ThreadPool singleton's api itself. 2020-05-24 12:39:17 +02:00