Patrick Pelissier
324ba5d256
Port to new memory model: M_MEMORY_FULL cannot return anymore
2025-05-07 21:02:23 +02:00
Patrick Pelissier
1cf7c4fa4d
Port to new memory model: M_MEMORY_FULL cannot return anymore
2025-05-07 21:02:23 +02:00
Patrick Pelissier
d40a6e5bc3
Document limitation
2025-05-07 21:02:23 +02:00
Patrick Pelissier
1e196fe22a
Port to new spec M_MEMORY_FULL
2025-05-07 21:02:23 +02:00
Patrick Pelissier
1f2584ccea
Port to new memory model
2025-05-07 21:02:23 +02:00
Patrick Pelissier
6d621703eb
Copyright go to 2025 year
2025-03-01 11:03:38 +01:00
Patrick Pelissier
26cec1591a
* Remove some obsolete macros
...
* Fix spelling
* A little bit of refactoring
2024-01-19 21:37:47 +01:00
Patrick Pelissier
52b58c5a51
Happy new year 2024
2024-01-19 21:37:47 +01:00
Patrick Pelissier
b50813713a
Define internal M_INLINE:
...
it is used to control the inline semantics.
By combining it with optimize option "-fno-inline"
for the internal M*LIB function (using _Pragma optimize)
we can control easily if we want to use an inline version
or call of an external function.
Define new user API:
* M_USE_EXTERN_DECL : define it before including any MLIB header to requests to call the M*LIB functions and don't inline then.
* M_USE_EXTERN_DEF : define it once in a translation unit to define the M*LIB functions. This translation unit shall contain all templated macro too.
If you use one option, you need to use the other one too for another translation unit.
2023-06-11 23:32:02 +02:00
Patrick Pelissier
219c62ff5d
Provide a way to alter the standard naming convention for the functions
...
Close #72
2023-04-22 09:33:08 +02:00
Patrick Pelissier
7534aa0d61
Add internal M_UNLIKELY_NOMEM to help coverage computation
2023-04-03 00:05:29 +02:00
Patrick Pelissier
a2ae209992
Happy new year
2023-01-02 12:57:41 +01:00
Patrick Pelissier
b8cd679679
Move generating macro into the m_ namespace and create a wrapper using historical names for compatibility with existing code
2022-03-24 20:46:49 +01:00
Patrick Pelissier
19b01b404d
Migrate to 2022
2022-03-12 20:25:45 +01:00
Patrick Pelissier
39edcc560f
Fix name of variable
2021-12-03 22:28:44 +01:00
Patrick Pelissier
50669a320c
Add m_ prefix for GENINT module,
...
as it is purely internal (no need to prevent user space breakage).
It will put more stuff in the global m_ prefix
2021-12-03 22:08:15 +01:00
Patrick Pelissier
3e4a5932c2
Rename internal function / types.
...
Reformat
2021-02-13 11:45:16 +01:00
Patrick Pelissier
d1f41de0cb
Rename internal functions
...
to use internal prefix.
2021-02-13 11:45:16 +01:00
Patrick Pelissier
517da1b999
Rename generated internal functions
...
to avoid "poluting" userspace naming.
2021-02-13 11:45:05 +01:00
Patrick Pelissier
25fe26deaa
Happy new year
2021-01-13 20:18:01 +01:00
Patrick Pelissier
a29682ca29
Create M_ASSERT macro to encapsulate assert within M*LIB
...
The goal is to enable the user to override this macro if needed so that it can enable or disable the M*LIB witout impacting its own assertions.
2020-10-29 22:46:17 +01:00
Patrick Pelissier
54d4b80368
Reformat macro to 80 characters
2020-10-21 23:23:40 +02:00
Patrick Pelissier
affb3778a0
Rename internal types to _ct
2020-10-03 14:07:14 +02:00
Patrick Pelissier
6d47074457
Rename internal types of m-core
2020-10-03 14:07:14 +02:00
Patrick Pelissier
b3a1a75f6f
Rename internal types:
...
a suffix ending with _ct means confidential type
ans is reserved for M*LIB internal usage.
OPLIST doesn't use the external types
but rather the internal types.
It enables to be independent of the real names
of the external types.
Such external names are planned to be fully customizable
(i.e. the user may define a name that suits its coding style)
2020-10-03 14:07:14 +02:00
Patrick Pelissier
5f9feb833c
Replace TAB by SPACE
2020-07-25 19:17:25 +02:00
Patrick Pelissier
8a36b5ff15
Workaround to avoid CLANG unused function warnings
2020-07-09 22:14:00 +02:00
Patrick Pelissier
690b7bf9c1
Fix other warning for msys2
2020-07-05 23:53:06 +02:00
Patrick Pelissier
04706d48b9
Fix further warnings
2020-07-03 23:03:12 +02:00
Patrick Pelissier
c7df60c78d
Fix some warnings
2020-07-03 22:44:34 +02:00
Patrick Pelissier
f2a06ede62
Add mechanism to disable temporary compiler warnings in a sequence of code.
2020-07-01 11:47:55 +02:00
Patrick Pelissier
279b46b4e2
Fix -Wsign-conversion warnings.
2020-06-13 19:43:38 +02:00
Patrick Pelissier
9a5302ac19
Rename internal backoff
...
to avoid consummign too much namespace
2020-06-05 20:34:31 +02:00
Patrick Pelissier
4f7b0b9455
Happy new year 2020
2020-01-04 15:41:06 +01:00
Patrick Pelissier
1882148a7c
Add more assertions
2019-06-08 10:45:24 +02:00
Patrick Pelissier
e6c958c0df
Fix data race.
2019-04-19 07:57:10 +02:00
Patrick Pelissier
7760f16260
Fix memory leaks
2019-04-04 08:31:26 +02:00
Patrick Pelissier
af2fe9ccf9
Fix issue (sizeof instead of offsetof)
2019-02-17 09:54:56 +01:00
Patrick Pelissier
30bda70319
Fix issue.
2019-02-17 09:36:18 +01:00
Patrick Pelissier
582c413cd2
Add VLA allocation compatible with concurrent mempool & gc
2019-02-13 08:19:07 +01:00
Patrick Pelissier
22e16e983b
Separate mempool in two concepts:
...
* A Garbage Collector that centralizes the connexion with the threads
and registers all mempools
* the mempool that is responsible for alloc/dec of nodes.
It allows having multiple mempools registered in a GC.
2019-02-10 10:26:20 +01:00
Patrick Pelissier
f067cb334c
Add missing return after M_MEMORY_FULL
2019-01-05 19:57:53 +01:00
Patrick Pelissier
bd29680b62
Add explanations as comment
2019-01-03 07:45:08 +01:00
Patrick Pelissier
c337462af6
Use extension to silent warnings about C11 features used in C99
2019-01-02 22:37:40 +01:00
Patrick Pelissier
8870a1c2f9
Remove atomic qualifier for one variable (useless)
2019-01-02 22:16:08 +01:00
Patrick Pelissier
38eb1c26c6
Variable number of threads for concurrent memory pool
2019-01-02 21:48:53 +01:00
Patrick Pelissier
af050d0100
Port to C++ madness
2019-01-02 21:21:24 +01:00
Patrick Pelissier
f4ed750d39
Add first test case for concurrent memory pool
2019-01-02 21:13:01 +01:00
Patrick Pelissier
4b3adc8d35
Add first WIP Concurrent Memory Allocator
2019-01-02 20:45:06 +01:00