Patrick Pelissier
2df967d5c2
add TODO
2018-03-24 08:52:20 +01:00
Patrick Pelissier
20989a7ab5
Add test for bounded string.
2018-03-24 08:42:47 +01:00
Patrick Pelissier
8e114d6fe4
Add bounded string definition so that you can easily use them for a container.
2018-03-24 08:42:15 +01:00
Patrick Pelissier
479ad2d4ba
Update doc
2018-03-23 22:07:04 +01:00
Patrick Pelissier
d05bb49f5d
Add more assertions.
...
Change prototype of fputs to return the error / success status.
2018-03-23 21:25:55 +01:00
Patrick Pelissier
fc9755379d
Add ctemplates
2018-03-23 20:10:37 +01:00
Patrick Pelissier
a85db0c383
Add libgenerics
2018-03-21 23:13:34 +01:00
Patrick Pelissier
d19ec5bf49
Fix format of _size
2018-03-21 20:11:31 +01:00
Patrick Pelissier
ba72e4ebbf
Remove check in protected contract:
...
since there are two mutex now, there are data race when we want to check it.
TODO: Properly separate the contract.
2018-03-17 19:54:59 +01:00
Patrick Pelissier
5936e25ce4
Add test
2018-03-17 09:24:26 +01:00
Patrick Pelissier
d82dc196e0
Fix datarace (?) if support for pop deferred has been activated
...
(a rewake of thread may be lost)
2018-03-16 23:55:16 +01: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
81e3515f40
Add missing tests
2018-03-16 23:06:15 +01:00
Patrick Pelissier
bffec6206b
Remove usage of variable array extension in C tests to avoid warning with C++ compilers.
2018-03-16 23:02:28 +01:00
Patrick Pelissier
d269c23948
Remove warning with C++.
...
It'll will increase the size of the type a little bit.
TODO: Check compatibility between code using C def and code using C++ def
2018-03-16 23:00:46 +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
5dded0d9aa
Clarify the displayed message
2018-03-16 22:30:59 +01:00
Patrick Pelissier
33142c3a0d
Fix build for flathaspmap (needs of C++14 and not C++11).
2018-03-16 09:27:00 +01:00
Patrick Pelissier
06e256f77a
Fix build with newer version of library
2018-03-16 09:13:34 +01:00
Patrick Pelissier
3f13cca666
Fix compilation with newer version of library
2018-03-16 09:04:32 +01:00
Patrick Pelissier
73117708e5
Analyze generated code
2018-03-14 23:51:51 +01:00
Patrick Pelissier
f88b53dce5
Fix issue
2018-03-14 23:51:43 +01:00
Patrick Pelissier
3e609bab04
Add method pop_until
2018-03-14 23:46:30 +01:00
Patrick Pelissier
a6bf530c5f
Remove a warning.
2018-03-14 22:19:16 +01:00
Patrick Pelissier
5d003b7678
Generate more functions
2018-03-14 22:18:48 +01:00
Patrick Pelissier
a5cbc3f34a
Rename method into GET_KEY. Add method SET_KEY
2018-03-13 22:22:26 +01:00
Patrick Pelissier
52e92e1ebf
Bench stable sort
2018-03-11 00:36:51 +01:00
Patrick Pelissier
5307b6c097
Add stable sort for array
2018-03-11 00:36:38 +01:00
Patrick Pelissier
dd4f4761de
Add GET_AT method
...
:
2018-03-10 19:26:59 +01:00
Patrick Pelissier
96f3533e46
Fix bug for default oplist used by M_A1_OPLIST
...
o
2018-03-10 18:52:16 +01:00
Patrick Pelissier
774e1720b7
Add M_SWAP_DEFAULT
2018-03-10 18:48:27 +01:00
Patrick Pelissier
83f8eadce9
Fix name of variable without a macro (shadow variable)
2018-03-10 18:09:23 +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
cbb881df86
Fix overwrite branch which has a data race on number.
...
Rewrite it to be simpler & faster and without data race.
2018-03-10 10:13:54 +01:00
Patrick Pelissier
103e5304e8
Use of 2 mutex for buffer:
...
* one for the enqueue
* one for the dequeue
The number of items in the buffer is the only variable which can be accessed
by both at the same time.
This improve the performance of the communication and reduce the possibility
of priority inversion between the producer and the consummer thread.
2018-03-09 21:07:21 +01:00
Patrick Pelissier
e152ff0377
Add TODO
2018-03-09 21:07:07 +01:00
Patrick Pelissier
65f39ab22e
Optmize the buffer queue:
...
don't broadcast the condition variable if we know that
no thread is waiting for it.
Improve bench test from 700ms to 450ms
2018-03-09 19:15:47 +01:00
Patrick Pelissier
df51c6dc64
Add m_cond_broad_cast
2018-03-09 19:15:31 +01:00
Patrick Pelissier
b7c86ee01e
Fix detection
...
of GCC
2018-03-06 21:58:41 +01:00
Patrick Pelissier
992bb6a73a
Add bench of hash computation library (XXHASH)
2018-03-04 01:16:37 +01:00
Patrick Pelissier
557dd3e0d5
Fix spelling
2018-03-03 18:32:08 +01:00
Patrick Pelissier
c8d5b5440f
Add documentation for LIST_DUAL_PUSH_DEF
2018-03-03 18:30:01 +01:00
Patrick Pelissier
0900e72070
Add TODO
2018-02-28 21:44:52 +01:00
Patrick Pelissier
dcdc64f974
Update graph
2018-02-28 21:34:47 +01:00
Patrick Pelissier
58898adbcd
Add target to Generate depend.png
2018-02-28 21:34:31 +01:00
Patrick Pelissier
ff2050466b
Fix spelling
2018-02-28 21:17:16 +01:00
Patrick Pelissier
dd209c05b9
Use new kind of dictionary for bench
2018-02-28 21:07:53 +01:00
Patrick Pelissier
12a4806b85
Add documentation
2018-02-28 21:07:43 +01:00
Patrick Pelissier
82575962ed
Add expansion of the new kind of dictionary
2018-02-28 21:07:29 +01:00
Patrick Pelissier
1db2813aa3
Add dictionary with store computed hash, avoiding the need
...
of recomputation in some cases.
2018-02-28 21:06:58 +01:00
Patrick Pelissier
c71613dcfe
Don't display warnings about unused variables in release mode.
2018-02-28 21:05:15 +01:00
Patrick Pelissier
762d8a8e74
Update assertion
2018-02-27 22:43:17 +01:00
Patrick Pelissier
b7966f6b61
Update assertions
2018-02-27 22:41:20 +01:00
Patrick Pelissier
b1443533e0
Update comment
2018-02-27 22:41:11 +01:00
Patrick Pelissier
6f12ac1d19
Update comments & add new assertions
2018-02-27 22:32:03 +01:00
Patrick Pelissier
0295eea145
Rewrite the prototype of intrusive shared object
...
to be more clear when there is a shared pointer
and when there is not.
2018-02-26 21:38:33 +01:00
Patrick Pelissier
171402f99f
Fix bug
2018-02-25 11:52:21 +01:00
Patrick Pelissier
3d57d35536
Update test
2018-02-25 11:52:14 +01:00
Patrick Pelissier
bacf2b9eec
Add more test for dual push list
2018-02-25 11:43:31 +01:00
Patrick Pelissier
fd885bdb19
Rewrite a little bit singly linked list
...
to be up-to-date with standards of other containers.
2018-02-25 11:24:44 +01:00
Patrick Pelissier
a497c07b0b
Update test
2018-02-24 21:41:30 +01:00
Patrick Pelissier
ffd5f23406
Update due to new generic type
2018-02-24 21:41:16 +01:00
Patrick Pelissier
97e3cc35c2
Add more tests.
2018-02-24 20:26:32 +01:00
Patrick Pelissier
44d8363292
Fix issue with assertion
2018-02-24 20:26:19 +01:00
Patrick Pelissier
e540a95ad0
Fix spelling
2018-02-24 15:28:07 +01:00
Patrick Pelissier
db63b0d515
Fix code generation analyzis for list
...
Add dual push list
2018-02-24 15:21:23 +01:00
Patrick Pelissier
7637c2fb58
Update test
2018-02-24 15:16:11 +01:00
Patrick Pelissier
5b40b43435
Add some tests.
2018-02-24 15:13:34 +01:00
Patrick Pelissier
6ec277ec99
Add dual push singly linked list
2018-02-24 15:07:58 +01:00
Patrick Pelissier
1befa63c9b
Remove duplicate code.
2018-02-24 15:04:44 +01:00
Patrick Pelissier
3d3e052f23
Add reference to wikipedia data structure in the documentation
2018-02-24 09:03:47 +01:00
Patrick Pelissier
aea816dcaf
Fix data race
2018-02-24 07:44:16 +01:00
Patrick Pelissier
d258fb3eff
Fix memory leak
2018-02-23 23:13:10 +01:00
Patrick Pelissier
1463d83b9f
Fix memory leak in test
2018-02-23 23:10:26 +01:00
Patrick Pelissier
10c947d9d4
Support of monocore cpu
2018-02-23 22:21:20 +01:00
Patrick Pelissier
2da51ea6e9
Remove constraint on size > 0
...
as workers can create a queue of size 0
in mono core system.
2018-02-23 22:12:17 +01:00
Patrick Pelissier
d930c0a4ad
Fix memory leak in test suite
2018-02-23 22:00:15 +01:00
Patrick Pelissier
d0e7cc41bf
Add more assertions
2018-02-23 20:40:44 +01:00
Patrick Pelissier
8c610adee5
Update README
2018-02-23 20:39:37 +01:00
Patrick Pelissier
a1e791d1e9
Add queue SPSC
2018-02-23 20:38:51 +01:00
Patrick Pelissier
264249fb8b
Improve queue MPMC contract checking
2018-02-23 20:13:04 +01:00
Patrick Pelissier
e2b00d7c73
Split function definitions into separate macro
2018-02-21 22:16:55 +01:00
Patrick Pelissier
ff3964e2eb
Factorization of the mympz type
2018-02-21 22:06:45 +01:00
Patrick Pelissier
2ed95bfe16
Fix generic issue for deque
...
(was totaly broken before).
2018-02-21 22:05:51 +01:00
Patrick Pelissier
958936319f
Activate test
2018-02-21 21:51:54 +01:00
Patrick Pelissier
39fca33958
Reuse memory node in case of pop from the opposite side
...
if there is at least one free node in the opposite side.
This reduce the memory consumption ***a lot*** for FIFO queues
usage.
2018-02-21 21:50:40 +01:00
Patrick Pelissier
eb4cbe863e
Add some TODO
2018-02-20 23:10:47 +01:00
Patrick Pelissier
d146ea6a63
Add new test (disabled)
2018-02-20 22:57:58 +01:00
Patrick Pelissier
f4b2ba8322
Fix coverage
2018-02-20 22:12:09 +01:00
Patrick Pelissier
acb1aa8104
Add new restriction
2018-02-20 22:12:03 +01:00
Patrick Pelissier
03f7a75e54
Add more check
2018-02-20 22:01:26 +01:00
Patrick Pelissier
2dc71cc5fd
Fix bug
2018-02-20 22:01:19 +01:00
Patrick Pelissier
4a92419bbe
Add tests
2018-02-20 21:55:16 +01:00
Patrick Pelissier
92699501f6
Add more assertions
2018-02-19 23:41:29 +01:00
Patrick Pelissier
b49ed97be0
Update comment
2018-02-19 23:38:22 +01:00
Patrick Pelissier
aec661edea
Add shared ressource container
2018-02-19 23:37:10 +01:00
Patrick Pelissier
675fa2cf85
Add note to document
2018-02-19 23:36:36 +01:00
Patrick Pelissier
b442d72ef7
Add forgotten free + check for memory allocation
2018-02-19 23:14:16 +01:00
Patrick Pelissier
2ff197c670
Add function _size
2018-02-19 23:14:09 +01:00
Patrick Pelissier
5c9a610823
Fix data race issue
2018-02-19 22:49:05 +01:00