Commit Graph

47 Commits

Author SHA1 Message Date
Francisco cdf72248f3 Reimplement batch-based background object/memory pool
Main changes:
- addition of pool utilities
- The node size/alignment and batch allocation threshold are now runtime arguments
- object pool and memory pool are not anymore based on the same class.
  The object pool cannot use intrusive free list because it would overwrite the object
  memory
2021-04-07 12:02:22 +01:00
Francisco 460d7a8f4f fix memory pool test - placed the pool state into a shared_ptr so that the callbacks still have a valid handle when the pool is destroyed 2021-04-07 12:02:22 +01:00
Francisco 9bec13731a adt unit test - fix memory pool test 2021-04-07 12:02:22 +01:00
Francisco ec3cd9ffea adt - added background object pool test, and fix existing bugs related to the creation of pools with objects that are too small to be used in free lists 2021-04-07 12:02:22 +01:00
Francisco d1c5b000dc adt - creation of pre-initialized object pool, that leverages the background memory pool allocator 2021-04-07 12:02:22 +01:00
Francisco a79ca92020 refactor type storage and pool tests 2021-04-02 17:40:50 +01:00
Francisco ced757a11b adt - add optional construct that closely emulates std::optional<T> 2021-03-31 19:14:11 +01:00
Francisco d04a19f8bc refactor - increase code reuse in adt files 2021-03-29 22:11:25 +01:00
Francisco eb38ff43ab fixed size buffer pool bugfix - deleted threads now return the cached memory blocks to the pool shared memory block container 2021-03-27 12:21:08 +00:00
Francisco be771e5c23 performance - use of new concurrent fixed size pool for byte_buffer pool 2021-03-27 12:21:08 +00:00
Francisco e1523692c2 implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing 2021-03-27 12:21:08 +00:00
Xavier Arteaga 5bdf2c93b3 Initial NR PDSCH CSI-RS RE skip and other changes 2021-03-24 09:06:26 +01:00
Francisco 6d9709fe54 adt - make circular buffer work with types without default ctor 2021-03-23 17:28:35 +00:00
Francisco ef5329bec0 adt - extend circular map unit test to test the container with move-only types 2021-03-23 17:28:35 +00:00
Francisco b5692037a2 created macros for assertions and warnings. The assert macro prints the whole callstack on crash. The warning macro can just log a warning or call an assertion fail depending on the cmake flag STOP_ON_WARNING 2021-03-23 10:49:28 +00:00
Francisco 0d5038dd34 fix wrong lib linking in cmaker 2021-03-22 14:58:25 +00:00
Francisco 88f5add1fb adt - fix circular map erase function and added extra asserts 2021-03-22 14:58:25 +00:00
Francisco 4869b14de3 application of new circular map to mac::ue_db 2021-03-22 14:58:25 +00:00
Francisco 98d0637ded adt addition - implemented reusable circular map 2021-03-22 14:58:25 +00:00
Codebot 4523ee6087 rename srsLTE to srsRAN 2021-03-21 21:47:01 +01:00
Francisco 3e9f93eb8a refactor - remove old log_filter and logmap libraries from the codebase 2021-03-11 20:10:54 +00:00
Francisco 7dcb703d06 adt lib,bugfix - fix bounded_bitset resize to clear bits outside of mask correctly 2021-03-11 15:18:16 +00:00
Francisco d77b6e1d9c sched,optimization,refactor - use of custom formatter that avoids mallocs for getting bitmasks strings in hex and binary formats 2021-03-09 16:23:08 +00:00
Francisco f0ed1e06a8 documentation,bugfix - added documentation to new blocking queues, changed class names, and removed blocking pushes from the critical path 2021-03-08 14:49:14 +01:00
Francisco 0ba93d274f converted byte_buffer_queue to use new circular buffer-based queue to avoid mallocs 2021-03-08 14:49:14 +01:00
Francisco 822e26b63f implemented circular buffer-based queue 2021-03-08 14:49:14 +01:00
Francisco Paisana f8b7351e1b implementation of object memory pool via class-specific operator new/delete 2021-01-12 16:22:10 +01:00
Francisco Paisana e96b8c263a add mem pool test. fix mem pool leak bug 2021-01-12 16:22:10 +01:00
Francisco 5cce2e4dc7 extension of bounded_vector unit test and fix of compilation issues
- now bounded_vector::resize(N) works for move-only types
- bounded_vector assertions now print error messages
- fixed move ctor/assignment of bounded_vector
- created a unit test for bounded_vectors of move-only types
2020-12-12 15:59:27 +01:00
Francisco fc451f17f0 implementation of bounded_vector and respective unit test 2020-12-12 15:59:27 +01:00
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 2020-12-12 15:59:25 +01:00
Francisco Paisana 834c0b3929 integrated new observer pattern into phy controller fsm 2020-08-24 22:10:32 +01:00
Francisco Paisana b2313e3631 observer pattern classes. Allows auto and explicit dispatch, and specifying which trigger method to use of an observer. 2020-08-24 22:10:32 +01:00
Francisco Paisana 9146e6ddf1 change method name to resize intervals 2020-08-14 15:06:06 +01:00
Francisco Paisana 4457bbda7e added new asserts to interval interface 2020-08-14 15:06:06 +01:00
Francisco Paisana 8b174ce2f4 changed interval interface to disallow interval::stop < interval::start via an assertion 2020-08-14 15:06:06 +01:00
Francisco Paisana c1755727d7 changed interval method names, and added comments and assertions 2020-08-14 15:06:06 +01:00
Francisco Paisana 20b69fb22e substitution of ul_alloc_t for prb_interval 2020-08-14 15:06:06 +01:00
Francisco Paisana 857cc141c7 fix macro checking for exceptions, added missing includes, fixed bounded bitset methods' noexcept specifiers 2020-08-13 13:13:34 +01:00
Francisco Paisana cceeff10de moved expected, bounded_bitset, move_callback to adt folder. created a test for bitset 2020-08-13 13:13:34 +01:00
Francisco Paisana caf862c99f moved expected, bounded_bitset, move_callback to adt folder. created a test for bitset 2020-08-13 13:13:34 +01:00
faluco 072e84cec8 - Simplified the usage of span now with implicit constructors as it should be.
- Added overload for generic containers that have size and data members like vector.
- Removed unnecessary uses of make_span.
2020-08-11 19:47:26 +01:00
faluco 158edd4fe7 Removed init list constructor test. 2020-08-11 19:47:26 +01:00
faluco af8dfcf19c Extended a bit the span implementation with the following changes:
- Documented methods and class.
- Adapted interface to the latest standard: no init list and generic container constructors, new iterator pair ctor.
- Implemented some SFINAE for managing conversions in constructors.
- Re-organised some methods to be grouped by category (modifiers, observers, iterators, ...).
- Added convenience make_span functions.
- Added some more  asserts.
- Adapted test to use some syntax that was modified.
2020-08-11 19:47:26 +01:00
Francisco Paisana 76a62909c1 use of span type for universal array views 2020-08-11 19:47:26 +01:00
Francisco Paisana 9d877e55b3 add test for when scope exit lambda is an lvalue 2020-08-10 17:23:43 +01:00
Francisco Paisana 0f67bee556 creation of a scope exit standalone file. Created a new folder ADT. Added test for scope exit. 2020-08-10 17:23:43 +01:00