Commit Graph
69 Commits
Author SHA1 Message Date
Patrick Pelissier cc6da8941c * Fix wanings for reduce precision on integers.
* Add wrapper for strncat
2020-06-22 00:14:37 +02:00
Patrick Pelissier e84fa859c6 Fix implicit conversion. 2020-06-14 00:17:44 +02:00
Patrick Pelissier 279b46b4e2 Fix -Wsign-conversion warnings. 2020-06-13 19:43:38 +02:00
Patrick Pelissier 78d0bfb286 Port new error oplist format to all containers. 2020-05-30 18:00:43 +02:00
Patrick Pelissier d1ae26f0fd * Add control than the type and the oplist are compatible 2020-05-17 10:27:30 +02:00
Patrick Pelissier 49a2e600c4 Add control of sub-oplist when creating a new oplist of a container
Add test case of this new control
Fix some corner bugs in some containers evolving their own oplists.
2020-05-15 21:19:39 +02:00
Patrick Pelissier 45d2a529b5 Add more validation of oplists before expanding data 2020-05-10 11:16:46 +02:00
Patrick Pelissier 4f7b0b9455 Happy new year 2020 2020-01-04 15:41:06 +01:00
Patrick Pelissier b8f44cc219 Fix bug (number of reader was too big, resulting in potential segfault) 2019-07-16 23:00:10 +02:00
Patrick Pelissier 20eb95ba45 Update comments 2019-07-16 23:00:10 +02:00
Patrick Pelissier 60a10eb799 Uniformize the macro names 2019-06-09 12:02:38 +02:00
Patrick Pelissier 475836e851 Use of new macro M_CACHELINE_ALIGN 2019-01-15 19:11:10 +01:00
Patrick Pelissier 8b3a4a802c Happy new year! 2019-01-02 18:12:07 +01:00
Patrick Pelissier 2e3b312fab Fix issue of recursive usage of M_GLOBAL_OPLIST_OR_DEF
Update the way to use the macro to avoid being limited by the
preprocessor limitation.
2018-09-14 20:57:55 +02:00
Patrick Pelissier 60478e3f61 Port to M_CALL for M-SNAPSHOT 2018-09-10 21:55:18 +02:00
Patrick Pelissier 3b0e940284 Add missing _ptr & _srcptr alias. 2018-08-19 17:58:23 +02:00
Patrick Pelissier 143a5fdf4f Fix issue if given type is a T * = TYPE:
token pasting created const T *, which is not the same as
const TYPE = T * const
2018-08-03 20:20:57 +02:00
Patrick Pelissier 68c737dcef Clean up interface if (internal) genint:
it returns at most an 2048, so an unsigned int is more enought
(and internally it was already used!).
So transform the interface to take as input unsigned int.

Fix maximum size supported by the genint package.

Add proper constant used for error, and use it in the code.
2018-08-02 23:19:05 +02:00
Patrick Pelissier 7d2494b7f9 Fix bug of SPMC / MPMC snapshots: not all items in buffers
were properly cleared.
2018-07-17 21:10:14 +02:00
Patrick Pelissier 3b642ffeb3 Update after internal review. 2018-07-17 21:00:55 +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 522632bea6 Remove deprecated macro SNAPSHOT_DEF.
Shall use SNAPSHOT_SPSC_DEF
2018-06-27 20:04:18 +02:00
Patrick Pelissier 25e8c9f637 Update comments. 2018-06-02 19:23:46 +02:00
Patrick Pelissier 704fb0cbd9 Add a cast to avoid a warning with some compilers
(I am not sure the warning was justified).
2018-04-19 22:13:53 +02:00
Patrick Pelissier c174b368e8 Fix issue with atomic variables needing writable variable even for reading only. 2018-03-16 23:27:08 +01:00
Patrick Pelissier f2b2335080 Fix issue with C++ not supporting passing an int constant value to an unsigned atomic type...
I definitely find this disturbing.
2018-03-16 22:59:51 +01:00
Patrick Pelissier f8e75761ef Change SNAPSHOT_SRSW to SNAPSHOT_SPSC to be uniform with queue definition
(Replace Reader / Writer term by Consummer / Producer term)
2018-03-10 17:46:02 +01:00
Patrick Pelissier aea816dcaf Fix data race 2018-02-24 07:44:16 +01:00
Patrick Pelissier b442d72ef7 Add forgotten free + check for memory allocation 2018-02-19 23:14:16 +01:00
Patrick Pelissier b32b93340c Improve tests & fix bugs.
Still one bug remain.
2018-02-18 17:01:41 +01:00
Patrick Pelissier 6de4c4092f Add MRMW snapshot 2018-02-18 08:27:10 +01:00
Patrick Pelissier 3f2a641cdf Add contract 2018-02-17 20:25:40 +01:00
Patrick Pelissier 20be2d8850 Externalized currentWrite 2018-02-17 20:21:53 +01:00
Patrick Pelissier b37cd7dba7 Rewrite / simplify code 2018-02-17 20:08:00 +01:00
Patrick Pelissier e274a49ffd Fix bug as we can't fail spuriously here. 2018-02-17 19:28:09 +01:00
Patrick Pelissier cba37abfae Reword 2018-02-17 19:24:16 +01:00
Patrick Pelissier be198a7040 Add MRSW snapshots. 2018-02-17 19:19:51 +01:00
Patrick Pelissier a4753be5ae Add test for int snapshot MRSW 2018-02-17 18:20:25 +01:00
Patrick Pelissier 3bda360196 Add first step of MRSW snapshot 2018-02-17 17:35:18 +01:00
Patrick Pelissier 80c7cdbdd2 Rename snapshot_def as snapshot_srsw_def 2018-02-17 12:00:45 +01:00
Patrick Pelissier 0afad9a825 Update comments. 2018-02-15 22:34:36 +01:00
Patrick Pelissier c99b3de902 Fix double minus which transformed into + ! 2018-02-15 22:31:50 +01:00
Patrick Pelissier 67856a98af Avoid false sharing for snapshot by aligning properly the
data of the triple buffer to a cache boundary.
2018-02-10 08:29:34 +01:00
Patrick Pelissier c71de15cb0 Update comment 2018-02-10 08:22:37 +01:00
Patrick Pelissier 73f15c1980 Update comment 2018-02-10 08:22:12 +01:00
Patrick Pelissier 210e05f7fc Update copyright to 2018 2018-01-29 20:28:30 +01:00
Patrick Pelissier 2c695526dd Fix issue with stricter C++ compiler with atomic definition.
(It still feels strange to not be able to store 0 in an atomic unsigned long).
2017-12-30 12:17:55 +01:00
Patrick Pelissier 229f99585d Rename _look ==> _read and _take ==> _write 2017-10-15 22:49:59 +02:00
Patrick Pelissier 2700ccba1a [SNAPSHOT]:
* Rename functions get_produced / get_consummed into get_write_buffer and get_read_buffer

* Add function _updated_p

* Add comments.
2017-10-11 22:16:39 +02:00
Patrick Pelissier 9cea3cf74d Fix issue with definition of oplist of a snapshot 2017-10-10 23:06:33 +02:00