Commit Graph
45 Commits
Author SHA1 Message Date
Patrick Pelissier 210e05f7fc Update copyright to 2018 2018-01-29 20:28:30 +01:00
Patrick Pelissier aede0547d3 Optimization: replace a division into a conditional move. 2018-01-12 18:56:01 +01:00
Patrick Pelissier 55332d61fd Fix data race for buffer in POP_RELEASE mode. 2018-01-12 18:52:34 +01:00
Patrick Pelissier 4f3823bfeb Add new function _blocking allowing to use
runtime behavior of the blocking characteristic of the
buffer regardless on how it has been configured.
2018-01-07 00:07:27 +01:00
Patrick Pelissier 3f7b16c736 If the size is constant (!= 0) when defining the buffer
then the array is embedded within the structure rather
than allocated when initialization of the structure
occurs.
2018-01-06 22:57:14 +01:00
Patrick Pelissier 362fbb39d4 Update comments 2018-01-06 21:58: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 2c6f37aa5f Add QUEUE MPMC contract. 2017-12-30 01:27:22 +01:00
Patrick Pelissier a74605088e Fix issue in case of atomic types being with lock
(const atomic_ type is invalid).
2017-12-28 12:00:03 +01:00
Patrick Pelissier 31820e7a5d Fix data race 2017-12-25 23:35:04 +01:00
Patrick Pelissier a71b0f1076 Fix issue for new option pop_release 2017-12-04 21:29:01 +01:00
Patrick Pelissier 1cadf702cd Add deferred pop release, so that we won't consider the queue as free
until the user code finished handling with the data?
2017-12-02 17:40:50 +01:00
Patrick Pelissier 9f2056468d Add buffer capacity 2017-12-01 22:46:09 +01:00
Patrick Pelissier 8cab91933f Separate blocking push & pop. 2017-11-29 22:38:54 +01:00
Patrick Pelissier cefa0ac589 Minor fix 2017-10-22 22:50:36 +02:00
Patrick Pelissier aaa8efb6e3 Add policy INIT_MOVE for queue MPMC. 2017-10-22 22:49:25 +02:00
Patrick Pelissier eed1579f76 Fix issue with C++ 2017-10-04 22:11:58 +02:00
Patrick Pelissier 669ba3d8b1 Fix warnings. 2017-10-04 21:50:08 +02:00
Patrick Pelissier a0948ed11a Fix a datarace detected by thread sanitizer. 2017-09-30 19:34:34 +02:00
Patrick Pelissier e9e7648bcd Add problem to solve detected by sanitiser. 2017-09-27 23:20:10 +02:00
Patrick Pelissier d19a5ad9de Fix warnings.
Update interface to avoid silent cast from size_t to unsigned int.
2017-09-24 23:05:46 +02:00
Patrick Pelissier 2e564088b0 Simplify the inclusion of headers. 2017-09-16 10:14:45 +02:00
Patrick Pelissier 1930bdeac1 _DEF macros checks if a global oplist is register if there is no one
given in the macro call. If it founds one, it will be it instead
of M_DEFAULT_OPLIST.
2017-09-16 08:31:22 +02:00
Patrick Pelissier 67b690bac8 Update comment. 2017-09-14 23:05:51 +02:00
Patrick Pelissier 392835463c Fix issues with new queue. 2017-09-02 22:16:47 +02:00
Patrick Pelissier 4e9375046f Update comment 2017-09-02 19:11:29 +02:00
Patrick Pelissier ae74bde7c9 WIP 2017-09-02 18:20:46 +02:00
Patrick Pelissier ec41f87f97 Add prototype for fast non locking queue MPMC 2017-09-02 18:15:00 +02:00
Patrick Pelissier b802d830b9 Add assertion. 2017-08-26 09:09:30 +02:00
Patrick Pelissier a69c67e850 Remove buffer prefix from buffers.
See commit on shared pointer.
2017-07-25 22:52:19 +02:00
Patrick Pelissier 38c15cebe2 Add statistics about how much overwrite has been done by the buffer.
Unlikley the test about overwrite.
2017-07-19 22:46:53 +02:00
Patrick Pelissier b241933556 Properly introduce contract for buffers. 2017-07-19 22:38:01 +02:00
Patrick Pelissier 3d9ba5cee4 Add the function buffer_size to return the number of objects in the buffer
waiting to be processed.
2017-07-15 16:38:59 +02:00
Patrick Pelissier 5c35411f43 Update TODO (priority queue needs their own headers). 2017-06-19 21:33:43 +02:00
Patrick Pelissier 1739de33c2 Remove hard dependency of INIT_MOVE operator for buffer. 2017-04-23 22:52:47 +02:00
Patrick Pelissier bc1e9239cc Clean up usage of policy within buffer. 2017-04-23 22:46:51 +02:00
Patrick Pelissier 997601c54a Rename M_C3(buffer_, name,_t) into buffer_t 2017-04-23 18:59:06 +02:00
Patrick Pelissier 4991386bb7 Add FREE operator.
Use it instead of DEL if necessary.
2017-04-06 01:21:11 +02:00
Patrick Pelissier 40b3b04d55 Fix bug 2017-03-27 16:54:41 +02:00
Patrick Pelissier 00f912a504 Replace M_MEMORY_ALLOC / M_MEMORY_FREE by M_GET_NEW / M_GET_DEL
It allows a dual layer of overloading for the memory.
2017-03-19 22:15:01 +01:00
Patrick Pelissier 0d21ac12bf Port mutex to use static inline instead of MACRO:
* cleaner
* fix bug in existing code detected by the changes.

*** Break API (you need to go to lower case instead of upper case) ***
2017-03-17 22:02:17 +01:00
Patrick Pelissier a185d08734 Add comments 2017-03-06 22:25:35 +01:00
Patrick Pelissier 4d019ca1f2 Update library name in headers. 2017-02-20 21:29:21 +01:00
Patrick Pelissier cb433aa2a8 Rename macros:
* CAT* --> M_C*
2017-02-19 00:36:42 +01:00
Patrick Pelissier 8e9d20ba1a Add initial stuff 2017-02-18 18:51:04 +01:00