b2cd215faf
Merge branch 'master' into cxx17
2022-01-20 17:33:30 +09:00
841a591aa4
Impl deferring deletions allowing for delete in fn
...
deleteEntity() is now allowed during a "forMatching" call, since it is deferred
until the "forMatching" call(s) end.
2022-01-20 17:32:05 +09:00
f009ef1135
Merge branch 'master' into cxx17
2022-01-20 14:34:31 +09:00
e61d2724e6
Fix possible data-race with isAlive() calls
...
Removed isAlive() calls from functions passed to ThreadPool, and instead use an
unordered_set prior to using ThreadPool to "cache" which entities are not alive.
This is so that if a function passed to ThreadPool modifies the ECManager (e.g.
creating a new entity), then there will be no data race from also calling
isAlive(). (Note that this does not protect against "deleting" entities from the
ECManager during use of ThreadPool. It is expected for the caller to do the
"deleting" after use of stored/called functions is finished.)
2022-01-20 14:31:23 +09:00
56d7ddd3ba
Use "if constexpr" where possible in ThreadPool
2021-09-09 15:55:23 +09:00
0a7929b0a4
Merge branch 'master' into cxx17
2021-09-09 15:54:30 +09:00
f27c22675a
Add easyWakeAndWait() to ThreadPool
...
Changed usage of ThreadPool in EC::Manager to use easyWakeAndWait().
2021-09-09 15:53:55 +09:00
e0a18900e4
Update doxygen main page to link to EC::Manager
2021-09-09 13:13:55 +09:00
51bea5a40f
Update Doxygen and README.md
2021-09-08 18:06:24 +09:00
7b512958fd
Attempt to use github actions for Doxygen docs
2021-09-08 17:42:43 +09:00
60f35e8270
Merge branch 'master' into cxx17
2021-09-08 15:56:44 +09:00
79748d58f1
Double the number of tasks given to ThreadPool
...
Previous implementation only enqueued "ThreadCount" tasks to ThreadPool.
For more efficiency, this has been changed to "ThreadCount * 2" tasks.
2021-09-08 15:55:08 +09:00
9732ac80bd
Merge branch 'master' into cxx17
2021-09-08 15:12:04 +09:00
388d48056f
Update README.md
2021-09-08 15:11:56 +09:00
cfccb5f863
Merge branch 'master' into cxx17
2021-09-08 14:58:54 +09:00
577a647ca4
Update doxygen documentation
2021-09-08 14:58:41 +09:00
dd83a492c8
Merge branch 'master' into cxx17
2021-09-08 14:14:43 +09:00
120368094e
Remove redundant function
...
"deleteForMatchingFunction()" was exactly the same as
"removeForMatchingFunction()", so it was removed.
2021-09-08 14:14:14 +09:00
4752a67380
Merge branch 'master' into cxx17
2021-09-08 10:49:49 +09:00
c2dc5124c9
Rename a UnitTest for ThreadPool
2021-09-08 10:49:32 +09:00
eca91d3670
Merge branch 'master' into cxx17
2021-09-08 10:46:39 +09:00
64e9b18f89
Fix UnitTests for ThreadPool
2021-09-08 10:46:26 +09:00
5baa4e92b7
Merge branch 'master' into cxx17
2021-09-07 20:25:10 +09:00
222fbb0862
Make ThreadPool::getThreadCount() constexpr
2021-09-07 20:24:47 +09:00
4fd463a870
Add tests for ThreadPool::getThreadCount()
2021-09-07 20:21:20 +09:00
5c72ecb74b
Add ThreadPool::getThreadCount()
...
Without the previously removed THREADCOUNT constant, there was no way to
query the ThreadCount from outside the class. This function provides
this.
2021-09-07 20:18:41 +09:00
39500e1fdc
Merge branch 'master' into cxx17
2021-09-07 20:16:36 +09:00
beb3eae6e2
Remove "THREADCOUNT" from ThreadPool
...
Redundant because "SIZE" provides the same value.
2021-09-07 20:15:53 +09:00
12ea26a69a
Merge branch 'master' into cxx17
2021-09-07 18:29:17 +09:00
e8f5e57772
Add missing include for "array"
2021-09-07 18:28:44 +09:00
8d44b8e2bc
Modify .clangd specifying use of C++17
2021-09-07 18:18:08 +09:00
af12aa577b
Merge branch 'master' into cxx17
2021-09-07 18:17:59 +09:00
a18ab3be31
Add .clangd specifying use of C++14
2021-09-07 18:17:31 +09:00
155df42657
Merge branch 'master' into cxx17
2021-09-07 18:16:29 +09:00
1069216c1a
Merge branch 'refactoring'
2021-09-07 18:15:12 +09:00
a851c63619
Workaround for gcc debug build fail
...
Instead of defining temporary structs in functions, the temporary
structs are defined as part of the Manager class.
2021-09-07 18:11:06 +09:00
be43cd03c5
Heavy refactorings
...
Use temporary structs instead of tuples.
Enforce max line width of 80 characters.
Fix warning related to ECTest.cpp .
Note that currently this commit appears to be unable to be built by GCC,
but compiles OK with Clang.
2021-09-07 17:04:20 +09:00
bfd5dba0b2
Merge branch 'master' into cxx17
2021-09-07 12:24:48 +09:00
dc7c29f7cc
Fix failing to wait for ThreadPool to finish
2021-09-07 12:24:27 +09:00
481f223c7d
Add "if constexpr" where possible in Manager
2021-09-07 12:13:28 +09:00
20df53837b
Use "if constexpr" in ThreadPool
2021-09-07 12:11:36 +09:00
eb638f325e
Merge branch 'master' into cxx17
2021-09-07 12:10:07 +09:00
d32c6d8d40
Fix CMakeLists.txt to use FindThreads
2021-09-07 12:09:02 +09:00
99fef060d5
Merge branch 'threadpool'
2021-09-07 12:07:05 +09:00
183eab10b3
Update documentation
2021-09-07 12:04:42 +09:00
6a8902ad51
Allow ThreadPool to be created with < 2 ThreadCount
2021-09-07 11:46:38 +09:00
16f410c8ef
Add isQueueEmpty() to ThreadPool
2021-09-07 11:29:06 +09:00
13152d1c22
Tweak sleep times for threadpool to finish
...
Remove debug print
2021-09-06 21:01:01 +09:00
0f2a98b886
Usage of ThreadPool fixes
2021-09-06 20:57:13 +09:00
f44d2f8c7b
WIP convert Manager to use ThreadPool
...
valgrind seems to report memory issues, and documentation may need more
updating.
2021-09-06 19:52:23 +09:00