37 Commits

Author SHA1 Message Date
Luca Boccassi
cbd52feb48
Merge pull request #3112 from devindusoft/FixCompilation_ZMQ_ATOMIC_PTR_MUTEX
Fixed compilation with ZMQ_ATOMIC_PTR_MUTEX
2018-05-15 15:10:49 +01:00
korbes
63e1e745f8 Fixed compilation with ZMQ_ATOMIC_PTR_MUTEX 2018-05-14 22:08:15 -03:00
Luca Boccassi
7ba074fa28 Problem: Sun Studio build errors
Solution: add compiler flags to support extensions like anonymous
structs in unions, fix casting of const, and check for suncc rather
than solaris
2018-05-13 18:24:50 +01:00
Manuel Segura
4726f7262d Pull request to merge porting to WindRiver VxWorks 6.x (#2966)
* Problem: Still need to port over more files to VxWorks 6.x

Solution: Port more files to VxWorks 6.x

* Problem: Need to port over remaining files to VxWorks 6.x. Also remove POSIX thread dependency for VxWorks (because of priority inversion problem in POSIX mutexes with VxWorks 6.x processes)

Solution: Port over remaining files to VxWorks 6.x. Also removed POSIX thread dependency for VxWorks

* Problem: Needed to modify TCP, UDP, TIPC classes with #ifdefs to be compatible with VxWorks 6.x.

Solution:  Modify TCP, UDP, TIPC classes with #ifdefs to be compatible with VxWorks 6.x
2018-03-10 11:03:02 +00:00
Simon Giesecke
3b90ad8c63 Problem: support of std::atomic is incomplete in VS <2015
Solution: use std::atomic only from VS 2015
2018-02-13 18:38:29 +01:00
Simon Giesecke
a1d55d0506 Problem: race conditions for options.linger (#2910)
* Problem: race conditions for options.linger

Solution: make options.linger atomic
2018-02-08 22:10:45 +00:00
sigiesec
41f459e1dc Problem: formatting inconsistent
Solution: applied clang-format
2018-02-02 15:47:43 +01:00
Luca Boccassi
f0ae5e585c Problem: C++11 atomic API never used
Solution: remove requirement to manually define macro and just check
for the C++ supported version.
Note that compiler intrinsics still have priority if available, to
avoid changes unless necessary.
2017-08-11 17:47:18 +01:00
evoskuil
2b798e486a Problem: name conflicts from windows.h, draft API declared in pch. 2016-05-13 20:41:26 -07:00
Constantin Rack
a539b0c6e8 Problem: copyright year is still 2015
Solution: update to 2016
2016-01-28 15:07:31 +01:00
Laszlo Boszormenyi (GCS)
be5ab6d5c9 GNU/Hurd support 2016-01-16 02:26:20 +01:00
Thomas Köppe
14d69a312d Clean-up: Rename internal macros consistently. 2015-07-02 17:41:09 +01:00
Thomas Köppe
73e6a3808f atomic_ptr.h: clean up the clean-up 2015-06-30 22:57:13 +01:00
Thomas Köppe
08f9bf589e Add missing relaxed memory ordering. 2015-06-30 22:26:35 +01:00
Thomas Köppe
68f5926ec6 Add support for <atomic> in C++11 2015-06-30 20:57:38 +01:00
Pieter Hintjens
8620c3e032 Problem: source file headers are somewhat confusing about LGPLv3
Of course people still "can" distributed the sources under the
LGPLv3. However we provide COPYING.LESSER with additional grants.

Solution: specify these grants in the header of each source file.
2015-06-02 22:33:55 +02:00
Thomas Rodgers
937d485e74 Add cast to make Clang happy 2015-01-28 16:38:14 -06:00
Thomas Rodgers
e6c45f5376 Support using compielr intrinsics for atomic operations
Works with GCC and most likely clang
2015-01-28 10:27:15 -06:00
Pieter Hintjens
94d9a4ffdf Problem: copyright statements are out of date
Solution: update for 2015

Fixes #1320
2015-01-22 10:32:37 +01:00
Pieter Hintjens
b3b9e046ee Updated copyright statements for 2014 2014-01-02 12:00:57 +01:00
Ken Steele
3286bf5ab6 On the Tile architecture, use atomic instructions for atomic ptr and counter.
For atomic_counter and atomic_ptr classes, detect the Tile architecture
using #if defined __tile__ matching ARM and Solaris and then use the
Tile atomic instructions. Without this change, the default Mutex
implementation is used, which is slower.
2013-03-20 12:54:38 -04:00
Pieter Hintjens
f0f16505e5 Removed corporate advertisements from source file headers
Copyrights had become ads for Sustrik's corporate sponsors, going against the original
agreement to share copyrights with the community (that agreement was: one line stating
iMatix copyright + one reference to AUTHORS file). The proliferation of corporate ads
is also unfair to the many individual authors. I've removed ALL corporate title from
the source files so the copyright statements can now be centralized in AUTHORS and
source files can be properly updated on an annual basis.
2013-03-12 13:24:57 +01:00
Arthur O'Dwyer
28c9255d46 Fix an error in the inline assembly for Thumb2.
Notice that ZeroMQ has never been compiled for Thumb2 before,
and I personally don't make any guarantees that it will actually
behave correctly once compiled. But after this patch, it is at
least *possible* to compile it for Thumb2.

(Thumb2 is the target for most iOS devices.)
2012-08-23 12:49:21 -07:00
Patrick Trantham
135fdab0ec Implement atomic operations for armv7a
This commit implements atomic operations for the armv7a architecture
using gcc inline assembly.  This offers higher performance compared to
pthread mutexes.

Tested on an am3517 evm, clocked at 600MHz:

./inproc_thr 200 1000000
------------------------
53-60K messages / sec, pthread mutexes
73-90K messages / sec, assembly atomic ops

./inproc_lat 200 1000000
------------------------
average latency: 42.234 [us], pthread mutexes
average latency: 35.496 [us], assembly atomic ops
2012-04-24 11:55:57 -05:00
Martin Sustrik
8e21d64c97 Copyright dates adjusted to reflect reality
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-11-01 18:06:11 +01:00
Martin Sustrik
ac7717b7b3 250bpm copyrights added
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-10-31 16:20:30 +01:00
Martin Sustrik
18b9ebea32 The copyrights in file headers updated.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-03-02 16:30:40 +01:00
Martin Sustrik
18f29ded6a Make cppcheck not complain about "'operator=' should return something"
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2011-01-13 11:44:23 +01:00
Martin Sustrik
b358df9fff Name of "GNU Lesser Public License" corrected.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
2010-10-30 15:08:28 +02:00
Martin Lucina
621d7415b3 Fix Solaris/NetBSD breakage in atomic_ptr.hpp 2010-06-04 15:35:14 +02:00
Martin Lucina
52ef3f3f2c Revert commit 7cb076e, atomic ops cleanup
Reverted to using atomic.h on NetBSD
Removed GNU builtins (see http://lists.zeromq.org/pipermail/zeromq-dev/2010-May/003485.html)
Removed SPARC native atomic ops as they are untested and have been commented out for years
Add "memory" to asm clobber for X86 atomic_counter::sub()
2010-05-12 16:46:59 +02:00
Steven McCoy
7cb076e56a Defer NetBSD atomic ops to GCC builtins. Revert Sun atomic ops #define. 2010-04-29 11:36:13 +02:00
Martin Sustrik
ea18d30c20 atomic_ptr fix of Win64 2010-04-15 07:32:25 +02:00
Martin Lucina
2a79a943de Add NetBSD support 2010-02-18 19:38:15 +01:00
Martin Sustrik
4f6baf4dde Copyrights transferred from FastMQ to iMatix 2010-01-05 08:29:35 +01:00
Martin Sustrik
cc3755a16f renamed from zs to zmq 2009-08-03 11:30:13 +02:00
Martin Sustrik
4ed70a9302 initial commit 2009-07-29 12:07:54 +02:00