Commit Graph

979 Commits

Author SHA1 Message Date
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d7dcab1dd0 monad, promise and future all now take their error and exception types as template parameters.
monad now throws monad_error with monad_category by default.
2015-06-07 03:13:26 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e1ff73f72c Split future.hpp into monad.hpp 2015-06-07 00:32:29 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1241e2c500 Disabled another failing test on gcc/clang. 2015-06-05 03:26:20 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2f1039d851 typo 2015-06-05 03:16:51 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e5a5a15f92 Added unit test for monad. 2015-06-05 03:14:24 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d60d240bf1 Restore default monad move constructor 2015-06-05 01:37:46 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
01e6a82f61 More constexpr monad tests 2015-06-05 00:45:24 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2243b0ceaa Fixed excessive constexpr 2015-06-04 23:34:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a6e4203bea Fleshed out the monad class 2015-06-04 19:04:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7a17c598a3 Wrote python script to parse assembler dump of lightweight future promise and construct an opcount.
Persuaded MSVC to constexpr fold almost all of the time.
2015-06-04 03:53:45 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
62c1f18278 Stamped out a few more APIs (commented out) 2015-05-27 10:48:16 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
00a70e09ae Fixed constexpr folding failure caused by get() 2015-05-26 00:28:28 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
226e081f66 Broke monad out from future 2015-05-25 18:54:42 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
1e70caf8d8 Fixed bug in lack of constexpr reduction of future. 2015-05-25 04:38:13 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
4c8566ae18 Try putting back the unrestricted union 2015-05-25 04:27:01 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c19899c200 more small changes 2015-05-25 04:10:15 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6c70b8389b Revert "Experimental replacement of promise future move constructors with intrusive variants."
This reverts commit 61313e3b30.
2015-05-25 03:54:33 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
61313e3b30 Experimental replacement of promise future move constructors with intrusive variants. 2015-05-25 03:51:00 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3da8d3bb2a Small fixes. 2015-05-25 03:08:41 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2fdd81e75e Added constexpr folding for future, and future from promise. 2015-05-25 02:51:44 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b8468a730d Yay got it constexpr reducing on gcc yay! 2015-05-24 03:09:57 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bd0b230ac7 Got lightweight future-promise working on VS2015. Still no joy on the constexpr reduction :( 2015-05-24 02:56:49 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
72045c4fe3 Added beginnings of assembler dump unit testing 2015-05-23 22:09:15 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
12a534d886 Added first edition of lightweight future-promise. 2015-05-23 21:27:08 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
ab682dff70 Fixed a failure to unlock buckets on failure to allocate new buckets in rehash. Thanks to Mikhail for reporting this. 2015-04-02 01:57:27 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
8e09d8ae51 upd 2015-03-26 18:30:00 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c4a2903a88 upd 2015-03-26 18:22:55 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
3b992806e8 Add atomic fences after every modification of std::vector holding bucket items. Almost certainly unnecessary, but no harm to have these. 2015-03-09 19:09:53 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0a27daf4e1 Try to see if I can see the cause of the suppressed _rehash() race reported by tsan. 2015-03-07 21:06:35 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
47f2064952 upd 2015-03-06 01:37:59 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7305f31c86 upd 2015-02-26 03:03:27 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9a4646421a Removed the dependency on Expected, and the expected_future as no longer needed. 2015-01-28 17:50:21 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
c99466bc83 upd 2015-01-17 03:10:44 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
98be366538 upd 2015-01-12 20:11:36 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b840973f7a upd 2015-01-11 00:43:19 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b367ace54f upd 2015-01-10 21:31:53 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
10e68631e6 ups 2015-01-05 16:23:37 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6a88582f28 Workaround too good iterator checking under MSVC. 2015-01-03 18:10:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b00b283ea3 Added unit testing for tristate and pointer spinlocks. 2014-12-12 20:58:13 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b0e726af60 Don't pad buckets. 2014-12-12 00:56:09 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
cf64f92943 upd 2014-12-11 23:58:13 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b2ecbdfcca Replaced CATCH with BindLib unit testing. 2014-12-11 22:21:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
051875b795 Fixed build failures. Added a FNV-1a hash implementation. 2014-12-11 21:28:17 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e5cc742ea5 Added a spinlock template parameter to concurrent_unordered_map.
Disabled noexcept destructor as it was ICEing GCC.
2014-12-10 20:34:24 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
67df71f099 concurrent_unordered_map::iterator operators != and == were broken.
Added concurrent_unordered_map::visit().
2014-12-09 19:41:10 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
99d17f1ee8 Fixes for mingw32 2014-12-07 01:51:50 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6cebcb7314 Disable constexpr on clang < 3.3 2014-12-06 19:00:41 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6b8e0c7cde Apparently Boost doesn't define is_nothrow_destructible. Oh well. 2014-12-06 18:15:42 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a78136cbaa Added missing include. 2014-12-06 18:12:25 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b71585e30e Try again GCC 4.7 fix. 2014-12-06 18:06:06 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
7cb221fc44 More workaround for GCC 4.7 2014-12-06 18:02:51 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6c73529c92 Fix for libstdc++ 4.7 2014-12-06 17:50:05 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
10673d10c3 upd 2014-12-06 17:31:01 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0c5b52957d upd 2014-12-06 16:37:41 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
2dfceea3cd Revert "Try skipping precheck on ARM"
This reverts commit 98d8a8715f.
2014-12-04 14:18:19 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
98d8a8715f Try skipping precheck on ARM 2014-12-04 14:04:29 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
00fcaf54c3 Only use XCHG instead of CMPXCHG on Intel only. 2014-12-04 13:40:59 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dff8efe464 Replaced consume precheck with relaxed precheck. 2014-12-04 13:10:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
79e9d0ac47 Added a BOOST_SPINLOCK_USE_VOLATILE_READ_FOR_AVOIDING_CMPXCHG macro. 2014-12-03 23:24:56 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
aa4999fc6e Replace atomic acquire with volatile read on MSVC only. 2014-12-03 23:14:45 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a0e25e9729 Got it compiling under VS2013 again. 2014-12-03 23:04:26 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
9700ccdf5c Now working with improved BindLib. 2014-11-20 18:40:53 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
dca8edd5c8 refresh bindlib 2014-11-10 19:39:02 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
84c6a0adf9 Fixed missing inline. 2014-11-07 23:28:19 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
0f00886f4c Made standalone selectable. 2014-11-04 11:07:33 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
991c79c627 Missed one in former commit 2014-10-30 18:25:47 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
83e7f521bb Stopped spinlock's valgrind use conflicting with anyone else's.
Fixed broken tsan suppression.
2014-10-30 18:21:36 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
e1287e567c Relocated bindlib and expected into includes 2014-10-29 20:05:58 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
6f57b937c2 Reorged to match Boost library directory conventions.
concurrent_unordered_map now has its own header.
2014-10-29 19:51:30 +00:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
bfdb5f79b3 Added a shared_future implementation. I still need to invert the Continuations... relationship between future and promise, and promise needs to not care about whether the future consumes or not. 2014-10-16 19:33:21 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d0f4a5f828 First working expected-based future promise implementation. 2014-10-15 20:37:03 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
a564d0a2cd Wip 2014-10-14 19:50:11 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
f5f1d9148a Wip expected future promise 2014-10-13 20:06:47 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
b1450545a2 Ended up suppressing the tsan warnings about unsynchronised use of bucket.count as it's only a speculative early out of doing a lock acquire, so it has relaxed ordering. This optimisation adds about 7% to benchmarks, so is probably worth it. 2014-10-11 21:39:29 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
fb1d61a38f Relaxed memory ordering on speculative count read/write 2014-10-11 20:49:21 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
56a6e49ca9 Finished marking up concurrent_unordered_map with noexcept 2014-10-11 17:48:14 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
75dc814006 Fixed bad Doxyfile
Made a start on noexcept markup
2014-10-11 17:37:17 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
710974c9d3 Fixed up renaming to work. 2014-10-11 17:11:50 +01:00
Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)
d44d6d8b5c Moved everything into Boost library directory org 2014-10-11 16:56:49 +01:00