Patrick Pelissier
f7f5db61d3
Fix formatting
2023-11-01 11:13:54 +01:00
Patrick Pelissier
796f2619e5
Change M_BY_NARGS semantics:
...
simplify suffix by __ # NARGS
instead of __NARGS_ # NARGS
Driver: reduce macro name length.
2023-10-20 00:02:38 +02:00
Patrick Pelissier
c9bb739f24
Fix format
2023-07-10 00:59:18 +02:00
Patrick Pelissier
e049b83a9e
Rename M_SUFFIX_FUNCTION_BY_NARGS in M_BY_NARGS
...
and updates suffix with __NARGS_
in order to be more explicit.
2023-07-10 00:58:31 +02: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
7534aa0d61
Add internal M_UNLIKELY_NOMEM to help coverage computation
2023-04-03 00:05:29 +02:00
Patrick Pelissier
d2ce71a90a
Adding M_WORKER_SPAWN_DEF2 for providing specialization
...
and type-safe variant of m_worker_spawn.
2023-02-18 00:24:20 +01:00
Patrick Pelissier
91f3174a36
Rename m-mutex header into m-thread
...
as it is not just about mutex but about thread functions
just like the header pthread or thread.h
2023-02-16 00:09:06 +01:00
Patrick Pelissier
130c32e7d4
Include only sysinfoapi.h on Windows machine to reduce dependency
...
Add fallback to _SC_NPROCESSORS_CONF if _SC_NPROCESSORS_ONLN is not supported (Android)
2023-02-07 23:17:03 +01:00
Patrick Pelissier
a2ae209992
Happy new year
2023-01-02 12:57:41 +01:00
Patrick Pelissier
d17fa4530b
Update comments
2022-11-05 13:36:57 +01:00
Patrick Pelissier
fc8c7349d6
Reformat
2022-03-23 21:35:22 +01:00
Patrick Pelissier
f26da68aa4
Fix regression for C++ / CLANG
2022-03-21 23:27:37 +01:00
Patrick Pelissier
144182b540
Move the worker functions into the m_ namespace and create compatibility layer
2022-03-21 23:15:14 +01:00
Patrick Pelissier
0fec9e7ac4
Fix format
2022-03-19 11:46:28 +01:00
Patrick Pelissier
5be8bb435b
Move WORKER_OPLIST to internal namespace
2022-03-19 11:44:58 +01:00
Patrick Pelissier
35b915ab10
Rename internal functions/types to the internal prefix
2022-03-19 10:47:27 +01:00
Patrick Pelissier
19b01b404d
Migrate to 2022
2022-03-12 20:25:45 +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
36ac6d5104
Fix issue on single core system
2020-11-21 10:53:11 +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
379e0be211
Use of new macro to define internal types not exported.
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
efef35c1e1
Reformat
2020-07-25 18:20:17 +02:00
Patrick Pelissier
56d2a74818
Fix some warnings
2020-07-09 23:38: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
7e0bd8414d
Fix warnings for mingw
2020-06-22 00:33:10 +02:00
Patrick Pelissier
cc6da8941c
* Fix wanings for reduce precision on integers.
...
* Add wrapper for strncat
2020-06-22 00:14:37 +02:00
Patrick Pelissier
279b46b4e2
Fix -Wsign-conversion warnings.
2020-06-13 19:43:38 +02:00
Patrick Pelissier
72fd53ab44
Update comments
2020-05-24 12:01:56 +02:00
Patrick Pelissier
12bc65b6a8
Fix spelling
2020-05-10 11:15:28 +02:00
Patrick Pelissier
4f7b0b9455
Happy new year 2020
2020-01-04 15:41:06 +01:00
Patrick Pelissier
0fa0445fa9
Fix C++ warning -Wclass-memaccess with G++ >= 8
2019-05-10 23:13:54 +02:00
Patrick Pelissier
8b3a4a802c
Happy new year!
2019-01-02 18:12:07 +01:00
Patrick Pelissier
82dbf60a4c
Use of the standard naming for User Defined macro that can customize the code generation. Rename macros WORKER_DISABLE.
2018-12-23 23:49:19 +01:00
Patrick Pelissier
48a970ceb9
Avoid using '__' within words.
...
It seems to be a reserved naming of C++.
2018-08-19 11:31:09 +02:00
Patrick Pelissier
7b5ae3c15b
Update API so that the worker_t parameter is given on creating the sync bloc.
...
(API breakage), more RAII like.
2018-07-28 19:09:07 +02:00
Patrick Pelissier
7678625071
Review:
...
* add comments
* change error code from assertion to proper memory failure
* add new assertions
2018-07-28 13:48:30 +02:00
Patrick Pelissier
96202aa78f
Do not use reserved identifiers of the C standard (See 7.1.3 Reserved identifiers)
2018-07-14 14:35:14 +02:00
Patrick Pelissier
3f5406f1d4
API breakage:
...
worker_sync takes an extra parameter (worker_t) to perform a
wait-on-event instead of a busy waiting, reducing consummer ressources.
worker_init takes an int instead of an unsigned int for the number of workers.
It allows additional extra value -1 to initialize the number of workers to
twice the number of CPU, allowing to overload the CPU with loads and keep
them fully working in some scenario.
2018-04-16 23:57:28 +02:00
Patrick Pelissier
6cccbfc73a
Add worker_sync_p function.
2018-03-26 22:13:50 +02:00
Patrick Pelissier
1f08bcf0f8
Add clear callback for workers.
2018-01-29 22:08:21 +01:00
Patrick Pelissier
a3e2e75021
Use new macro.
2018-01-29 21:59:57 +01:00
Patrick Pelissier
210e05f7fc
Update copyright to 2018
2018-01-29 20:28:30 +01:00
Patrick Pelissier
6549bea3e0
Fix issue for BSD
2018-01-12 20:11:11 +01:00
Patrick Pelissier
83eeb5d6d0
Make the code more robust
2018-01-12 18:48:38 +01:00
Patrick Pelissier
1c9a232a9d
Add 'worker_flush' function.
...
Factorization of the exec function.
2018-01-07 22:15:58 +01:00
Patrick Pelissier
f2344c69ca
Rename worker_block_t into worker_sync_t
...
as it is a synchronization point for workers
not an anonymous block.
2017-12-28 00:03:47 +01:00