Commit graph

62 commits

Author SHA1 Message Date
5e7aa7601d Pimpl declaration macros now define a make_pimpl(...) static helper function 2021-01-23 10:42:14 +03:00
07924aa0d5 Various clang compilation issues 2021-01-18 20:02:35 +03:00
2205b5e2a7 util/io_fwd was a bad idea 2021-01-18 18:17:57 +03:00
d7469920de Clang compilation fixes: use non-template stream output operators 2021-01-18 18:11:01 +03:00
f0611657ac Generate empty source file for libraries with no sources 2021-01-18 18:10:35 +03:00
e7cac4a618 Clang compilation fixes 2021-01-18 18:01:03 +03:00
22f5b85854 Node-based binary heap (wip) 2020-12-16 11:05:29 +03:00
9c54f6e730 Add function profiling macro 2020-12-16 11:05:29 +03:00
50cc785998 Get elapsed time before locking mutex in profiler 2020-12-16 11:05:29 +03:00
eff7be5653 Redesign profiler: hierarchical, thread-aware, dump into log::info upon request 2020-12-16 11:05:29 +03:00
ce4e561cac Support merging two util::statistics 2020-12-16 11:05:29 +03:00
7751d6fd36 Add util::statistics::count 2020-12-16 11:05:29 +03:00
0517609b8b Add util/hash header 2020-12-11 17:58:36 +03:00
abd40bfa4d Make util::profiler use the logging system 2020-11-29 12:30:02 +03:00
8ea508ee20 Fix flat_list: destructor hack should only compile for types with nontrivial destructor 2020-11-29 12:27:41 +03:00
d470fe7346 Add a heterogeneous container (with type list specified at compile-time) & tests 2020-11-26 22:01:57 +03:00
ccef8f91ea Optimize flat_list::clear for the case of trivially-destructible types 2020-11-26 14:43:30 +03:00
e3c42627c4 Add util::flat_list and tests 2020-11-25 13:23:27 +03:00
eda0701887 Add util tests 2020-11-24 23:13:34 +03:00
26d06b74d3 Fix util::array::release 2020-11-24 23:11:11 +03:00
bfff9b2c4d Add util::blob::operator bool() and util::blob::swap 2020-11-24 23:10:52 +03:00
1e1679ffe0 Add <functional> include in util::function for std::invoke 2020-11-24 23:10:15 +03:00
c6fe38989c util::function bugfixes & strong exception guarantee 2020-11-23 17:56:35 +03:00
cb468aa675 Remove polymorphic_storage helper 2020-11-22 12:40:31 +03:00
a1cf646633 Rename movable_function -> function & better SSO 2020-11-22 12:40:26 +03:00
8e3a012fd6 Add small object optimization to movable_function 2020-11-22 11:19:49 +03:00
e41e2492ca Improve synchronyzed_queue interface: support timed variants of all operations 2020-11-21 23:29:17 +03:00
0d64e86ffe Add async library & move stuff from util to async 2020-11-21 16:27:38 +03:00
a6b931e8e2 Support auto-canceled tasks 2020-11-21 15:43:42 +03:00
5f91587a39 Add future::ready 2020-11-21 15:32:24 +03:00
ff5d778118 Fix executor::dispatch_at time_point_cast bug 2020-11-21 15:32:14 +03:00
8ecf10de30 Mark future::wait as const 2020-11-21 15:31:55 +03:00
fb9f1d8f30 Fix threadpool name use-after-free bug 2020-11-21 15:31:25 +03:00
240d26663b Add deferred event support to executors 2020-11-21 15:16:47 +03:00
a8a1f44a89 Support deferred events in synchronyzed_queue & remove timeout methods 2020-11-21 15:14:06 +03:00
9fa32c2dd1 Add util::event_loop executor 2020-11-19 23:50:28 +03:00
daf1a3c5f4 Make threadpool implement executor interface 2020-11-19 23:50:23 +03:00
8bfc6cfd72 Add an executor interface that supports cancelable tasks 2020-11-19 23:48:33 +03:00
71f6fc9baf Add LRU cache implementation 2020-11-08 16:19:37 +03:00
42501ec7c2 Add threadpool::queue_size() and synchronyzed_queue::size() 2020-11-08 16:12:42 +03:00
1771f56508 Fix all stream output operators: operator<< might return a different stream type 2020-11-06 17:34:57 +03:00
d88799f308 Add util::array mirroring 2020-10-26 18:38:22 +03:00
08c62d6e3f Add macro-based pimpl & use it everywhere 2020-10-23 17:14:54 +03:00
7b9e042842 Fix threadpool::wait - wait for finished tasks as well, not just empty task queue 2020-09-30 16:20:48 +03:00
d4c2b5c408 Fix array indices iteration 2020-09-30 16:16:24 +03:00
e520b464e4 Add util::array iterators over range of indices 2020-09-30 07:23:05 +03:00
f193ddf41d Add util::map(array) for transforming arrays elementwise 2020-09-23 20:19:02 +03:00
5830977e45 Add a simple statistics calculator utility 2020-09-23 13:14:34 +03:00
1ab980f0d2 Threadpool requires having a name 2020-09-21 20:22:22 +03:00
d2d88ba7c5 Add 'psemek-' prefix to all psemek targets 2020-09-21 09:04:40 +03:00