Wilson Snyder
8fbb725f34
Copyright year update.
2025-01-01 08:30:25 -05:00
Bartłomiej Chmiel
ffe76717c6
Thread pool rewrite ( #5161 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Co-authored-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
2024-08-23 08:36:49 -04:00
Bartłomiej Chmiel
d1b45b8d32
Fix attempted to destroy locked thread pool error ( #5040 )
2024-04-29 07:59:24 -04:00
Wilson Snyder
0ff77fc352
Internals: Remove extra single-line {}. No functional change.
2024-03-27 17:57:49 -04:00
Kamil Rakoczy
01dadb0a8d
Fix try-lock spuriously fails ( #4931 ) ( #4938 )
2024-03-01 15:29:13 -05:00
Wilson Snyder
3a5248a919
Internals: Mark structs final/VL_NOT_FINAL. No functional change intended.
2024-01-20 15:06:46 -05:00
Wilson Snyder
e76f29e5ba
Copyright year update
2024-01-01 03:19:59 -05:00
Mariusz Glebocki
75a44e5aa9
Fix deadlocks in error handler ( #4672 )
2023-12-12 08:10:01 -05:00
Wilson Snyder
f3ae4b8786
Fix spelling
2023-11-10 23:25:53 -05:00
Wilson Snyder
431bb1ed16
Support compiling Verilator with gcc/clang precompiled headers ( #4579 )
2023-10-17 22:49:28 -04:00
Kamil Rakoczy
9fe459c820
Internals: V3LockGuard: Add constructor for adopting already locked mutex. ( #4476 )
2023-09-13 13:52:59 -04:00
Kamil Rakoczy
8bd6d7c5b1
Internals: Add V3ThreadSafety ( #4477 )
2023-09-13 07:57:48 -04:00
Kamil Rakoczy
5676443139
Internals: Rename and slightly change other threads stopping/resuming methods. ( #4478 )
...
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
2023-09-11 13:43:26 -04:00
Wilson Snyder
8c480fd39e
Internals: Fix cppcheck warnings
2023-08-31 18:29:58 -04:00
Mariusz Glebocki
85b7f828b3
Internals: Use `std::packaged_task` as a job wrapper; add and use `V3ThreadPool::ScopedExclusiveAccess` ( #4310 ).
...
* Add VL_ASSERT_CAPABILITY; add assumeLocked and pretendUnlock to V3Mutex.
* Pass jobs as template-arguments and use std::packaged_task.
* Add and use V3ThreadPool::ScopedExclusiveAccess.
2023-06-23 18:25:12 -04:00
Mariusz Glebocki
186c851695
Internals: Avoid pessimistic mutex locking in waitIfStopRequested() ( #4272 ). No functional change intended.
...
`stopRequested()` reads only atomic variables. It doesn't need a mutex
to do this.
This function is called in `waitIfStopRequested()`, which in turn
is called before execution of every job, and inside some jobs. With this
change the mutex inside `waitIfStopRequested` needs to be locked only in
very rare cases instead of every time.
2023-06-05 19:40:36 -04:00
Mariusz Glebocki
5aa36357f6
Internals: Use `auto` instead of SFINAE in return type ( #4271 ). No functional change intended.
2023-06-05 18:53:19 -04:00
Mariusz Glebocki
949be301de
Internals: Fix unbalanced V3LockGuard locking ( #4193 )
2023-05-13 10:32:33 -04:00
Kamil Rakoczy
65a484e00b
Internal: Update clang_check_annotations conditions ( #4134 )
2023-04-20 07:02:31 -04:00
Kamil Rakoczy
e1683afb31
Internals: V3ThreadPool: add function waiting for list of futures ( #4112 )
2023-04-12 08:49:48 -04:00
Kamil Rakoczy
b6dcec2710
Internals: Split Mutex class used in verilated code and verilator ( #4048 )
2023-04-11 07:23:24 -04:00
Kamil Rakoczy
a39c7f7dac
Internals: Add V3ThreadPool class ( #3898 )
...
The thread pool is self tested, but not otherwise used by the code yet.
2023-01-27 10:43:50 -05:00