51 Commits

Author SHA1 Message Date
Cameron
3e72a150ac Tentative fix for use-after-free in thread exit notification linked list, and for race between thread exit and thread exit unsubscription (see #288) 2022-03-13 10:15:51 -04:00
Cameron
d3a1e7542b Added test that churns implicit producer threds (relates to #288) 2022-03-12 13:55:21 -05:00
Cameron
a15a7236e9 Made implicit producers free dynamically allocated blocks all the way back to the heap by default (see issue #279) 2022-01-25 22:26:49 -05:00
Charles-Francois Natali
14838d1f6f Make is_lock_free constexpr.
This makes it possible to use it in `static_assert`, which is better
than a runtime error.
2021-11-24 13:50:39 +00:00
Kevin Sucre
cc07642708 updated g++, msvc projects to not have exceptions for the new cpp files
- fixes memory leaks
2020-10-06 11:30:01 -06:00
Kevin Sucre
7854f607f2 adding unit tests 2020-10-06 10:44:27 -06:00
Cameron
4948767e8d Added missing include for recent versions of MSVC 2020-09-11 16:10:45 -04:00
Cameron
9cfda6cc61 Fixed VS2019 /W4 warnings with and without C++17 language suport (issue #211) 2020-07-11 12:20:21 -04:00
Cameron
0b410f5edf Fixed CDSChecker tests (only enqueue from one thread; updated memory ordering to match real queue and fix races; removed invalid assertion; updated makefile to run without bound instead of stopping after 4 executions) (issue #184) 2020-02-09 12:23:47 -05:00
Cameron
52919ed7e1 Removed check for lock-freedom on ARM since std::atomic<size_t> is not always lock-free (uses LL-SC instead) (issue #186) 2020-02-09 10:17:24 -05:00
Cameron
4abab7d4f7 Attempt to fix warnings and errors when compiling for Raspberry Pi (issue #185) 2020-02-04 21:28:17 -05:00
Cameron
ba571c3d81 Reduced alignment in test to work around GCC limitations (should fix #178) 2020-01-02 12:20:26 -05:00
Cameron
4649e6885a Finished integration of super-aligned element support and added a test 2019-12-27 23:51:26 -05:00
Cameron
207f91271f Merge branch 'split_out_semaphores2' of https://github.com/zerodefect/concurrentqueue into zerodefect-split_out_semaphores2 2019-12-27 22:26:06 -05:00
Cameron
5f57c9f588 Updated to latest version of Relacy and fixed incompatibility with GCC 5+ (tests still pass) (issue #102) 2019-12-27 20:10:05 -05:00
Cameron
ffda5a47ff Fixed placement of declaration so that size_t is defined when used 2019-08-20 13:17:36 -04:00
Cameron
7e3ad876fc Fixed compile error in VS2017+ when combining placement new on nullptr in a noexcept expression with overloads of the new operator [issue #162] 2019-08-01 14:20:24 -04:00
Cameron
6282b369b4 Added unit test 2019-08-01 14:20:24 -04:00
Cameron
3e0eac9b7a Oops, placed defines after including headers. Tests still compile though 2018-03-01 17:11:05 -05:00
Cameron
02f36545c5 Allow likely/unlikely macros to co-exist without causing compile errors (issue #108) 2018-03-01 16:28:59 -05:00
zerodefect
25d41bbef4 Tweaked final lines for tabs/spaces. 2017-11-02 20:45:24 +00:00
zerodefect
59cbdbb76f Tweaked final lines for tabs/spaces. 2017-11-02 20:43:33 +00:00
zerodefect
7a7981477d Tweaked final lines for tabs/spaces. 2017-11-02 20:38:41 +00:00
zerodefect
a30a4fb451 Replaced spaces with tabs for indentations to keep consistency. 2017-11-02 20:32:37 +00:00
zerodefect
5bf4a026f8 Several changes made as per code-review. 2017-11-01 20:34:31 +00:00
zerodefect
5cfe6118c0 moved semaphore into a separate header file. 2017-11-01 20:34:11 +00:00
Cameron
0bc97ad4ae Don't use thread_local on ARM (this may degrade performance on non-Apple platforms when using implicit producers, but it seems not to be fully supported). See issue #42 2016-06-06 13:08:56 -04:00
Cameron
f52be57f2f Added unit test for timed waits (all seems well so far!) -- see issues #22 and #38 2016-05-10 23:12:52 -04:00
Cameron
d32bd47f43 Added more checks for accidental copying when moving is desired (tests still pass). See issue #45 2016-04-04 17:37:36 -04:00
Christoffer Ahlbin
da2e413dd8 Support running unit tests on iOS device
Added a minimal Xcode project with a iOS Application target that
provides a minimal UIApplicationDelegate that can host / run the unit
tests.

The target is intentionally setup as an "Application"-type target rather
than an XCTest bundle as it is generally easier to run application
targets on device (vs iOS Simulator).

Explicitly enabled build settings:

  Release configuration: NDEBUG=1

The commited shared .xcscheme is set to build and tests in Release.
2016-01-27 22:11:41 +01:00
Samuel Neves
f8fbf34c21 Prevent surrogate call ambiguity 2016-01-24 15:45:55 +00:00
Cameron
a951473283 Allow malloc() and free() macros to be defined without breaking code (issue #27) 2015-09-11 14:25:22 -04:00
Cameron
317a67b28a Fixed build and failing unit tests under VS2012 (related to issue #18/pull #19) 2015-05-20 19:03:38 -04:00
Cameron
18728dda5c Got blocking queue compiling under VS2013 2015-04-10 23:03:02 -04:00
cameron314
d3735b5b7a Added blocking version of queue 2015-04-08 20:09:19 -04:00
cameron314
b9b4646d62 Small makefile tweak 2015-03-09 22:09:36 -04:00
cameron314
d3ca98ea59 Added more Relacy-based integration tests, one of which found a bug in the explicit producer destructor that could cause destructors to be called on already-destructed objects (this should fix issue #13) 2015-03-09 20:11:38 -04:00
cameron314
ed902c9387 Added more Relacy integration tests, passing so far 2015-03-04 23:07:48 -05:00
cameron314
01f420d7cc Added support for testing entire queue as a whole under Relacy -- relacy integration test is currently failing 2015-02-28 18:50:47 -05:00
cameron314
295f0ec2be Added test using std::string in hopes of triggering crash to reproduce issue #13 (no repro so far with MinGW) 2015-02-11 22:55:18 -05:00
Cameron
67b59703b8 Fixed small bugs in latest unit test 2014-12-23 07:46:58 +00:00
cameron314
e53f28cb38 Added support for recycling implicit producers once the thread they're associated to has exited 2014-12-23 01:37:45 -05:00
cameron314
ba76344b46 Added test for maximum producer size limit trait, and fixed missing parenthese around arithmetic for it (completes issue #4) 2014-12-02 19:34:09 -05:00
Cameron
990af3c98b Fixed bug in unit test that was causing it to fail on MSVC (it worked by coincidence with GCC) 2014-11-28 18:47:40 -05:00
Cameron
d5baf53a41 Fixed max_align_t once and for all 2014-11-28 13:16:16 -05:00
cameron314
1024146ea9 Fixed MSVC/MinGW NOMINMAX incompatibility 2014-11-28 08:33:31 -05:00
cameron314
47327c81ff Attempting to get both msvc and g++ to be happy with max_align_t 2014-11-28 01:02:22 -05:00
Cameron
26eac1568d Added VS2013 solution and projects, and fixed related errors and warnings (though unit test for exceptions does not pass under MSVC yet) 2014-11-28 00:55:04 -05:00
cameron314
cc6611d4bc Now exception safe (issue #5), and fixed producer/consumer samples 2014-11-27 22:18:56 -05:00
cameron314
3f117fdf64 Proper fix for issue #3 (last one didn't compile! 2014-11-12 06:54:17 -05:00