libzmq/src
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
..
address.cpp stupid bug. I feel ashamed ^) 2012-04-21 07:55:54 +04:00
address.hpp implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID) 2012-04-18 23:42:11 +04:00
array.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
atomic_counter.hpp Implement atomic operations for armv7a 2012-04-24 11:55:57 -05:00
atomic_ptr.hpp Implement atomic operations for armv7a 2012-04-24 11:55:57 -05:00
blob.hpp Revert "fix warn unused" 2012-02-14 18:43:33 -06:00
clock.cpp Add WinCE support. 2012-03-14 19:12:28 +04:00
clock.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
command.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
config.hpp some spaces cleanups + delete unused anymore zmq::max_sockets + some minor code chages 2012-04-13 13:26:57 +04:00
ctx.cpp Added optval checking in zmq_ctx_set 2012-03-29 07:46:46 -05:00
ctx.hpp Fixed issue LIBZMQ-345 - race condition in ctx.socket/term allows segfault 2012-03-22 11:04:01 -05:00
dealer.cpp Completed internal renaming of XREP/XREQ to ROUTER/DEALER 2012-03-22 11:36:19 -05:00
dealer.hpp Completed internal renaming of XREP/XREQ to ROUTER/DEALER 2012-03-22 11:36:19 -05:00
decoder.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
decoder.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
device.cpp Fixed issue LIBZMQ-358 2012-04-18 13:14:07 -05:00
device.hpp Fixed issue LIBZMQ-333 2012-03-16 16:39:11 -05:00
devpoll.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
devpoll.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
dist.cpp Fix for issue #307 2012-03-25 18:11:14 +01:00
dist.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
encoder.cpp Fixed issue #293 2012-03-20 10:53:51 -05:00
encoder.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
epoll.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
epoll.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
err.cpp Add WinCE support. 2012-03-14 19:12:28 +04:00
err.hpp Add WinCE support. 2012-03-14 19:12:28 +04:00
fd.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
fq.cpp Revert "fix warn unused" 2012-02-14 18:43:33 -06:00
fq.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
i_engine.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
i_poll_events.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
io_object.cpp Revert "fix warn unused" 2012-02-14 18:43:33 -06:00
io_object.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
io_thread.cpp Revert "fix warn unused" 2012-02-14 18:43:33 -06:00
io_thread.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
ip.cpp some spaces cleanups + delete unused anymore zmq::max_sockets + some minor code chages 2012-04-13 13:26:57 +04:00
ip.hpp initial implementation of tuning TCP keep-alives for TCP socket 2012-04-05 19:39:53 +04:00
ipc_address.cpp implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID) 2012-04-18 23:42:11 +04:00
ipc_address.hpp implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID) 2012-04-18 23:42:11 +04:00
ipc_connecter.cpp fix connection establishment for AF_UNIX sockets 2012-03-20 19:04:12 +01:00
ipc_connecter.hpp Resolve addresses in the calling thread on connect. 2012-02-16 14:42:55 +01:00
ipc_listener.cpp fixes for zmq_unbind() / zmq_disconnect() usage corner cases 2012-04-21 18:56:10 +04:00
ipc_listener.hpp implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID) 2012-04-18 23:42:11 +04:00
kqueue.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
kqueue.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
lb.cpp Do not pass a message to the check_write method 2012-03-28 07:28:42 +02:00
lb.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
libzmq.pc.in added libzmq.pc.in file 2009-09-08 15:06:08 +02:00
likely.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
mailbox.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
mailbox.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
Makefile.am Fixed Makefile for ROUTER/DEALER rename 2012-03-22 16:48:29 -05:00
msg.cpp Add WinCE support. 2012-03-14 19:12:28 +04:00
msg.hpp Revert NULL checks in the API 2012-02-17 09:48:04 +00:00
mtrie.cpp Fixed a bug in the mtrie table compaction logic. 2012-02-27 11:51:30 +01:00
mtrie.hpp Reduce memory usage of mtrie. 2012-01-30 09:47:33 +01:00
mutex.hpp Simplify use of posix_assert in mutex.hpp 2012-03-28 07:28:43 +02:00
object.cpp Fixed issue #348 2012-03-26 16:31:12 -05:00
object.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
options.cpp 2nd try wuth sock->unbind() and sock->disconnect(). now with blackjack and const char*'s 2012-04-20 18:59:08 +04:00
options.hpp 2nd try wuth sock->unbind() and sock->disconnect(). now with blackjack and const char*'s 2012-04-20 18:59:08 +04:00
own.cpp implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID) 2012-04-18 23:42:11 +04:00
own.hpp implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID) 2012-04-18 23:42:11 +04:00
pair.cpp Do not pass a message to the check_write method 2012-03-28 07:28:42 +02:00
pair.hpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
pgm_receiver.cpp Fix pgm_receiver.cpp: zmq_assert (pending_bytes == 0) (LIBZMQ-205) 2012-01-04 11:48:41 +01:00
pgm_receiver.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
pgm_sender.cpp Fix data loss for PUB/SUB and unidirectional transports (LIBZMQ-268) 2012-02-02 13:07:48 +01:00
pgm_sender.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
pgm_socket.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
pgm_socket.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
pipe.cpp spaces deleted 2012-04-21 18:36:20 +04:00
pipe.hpp Do not pass a message to the check_write method 2012-03-28 07:28:42 +02:00
poll.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
poll.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
poller_base.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
poller_base.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
poller.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
precompiled.cpp Added MSVC10 solution and project files for Windows 2011-12-15 14:03:43 +01:00
precompiled.hpp Added MSVC10 solution and project files for Windows 2011-12-15 14:03:43 +01:00
pub.cpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
pub.hpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
pull.cpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
pull.hpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
push.cpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
push.hpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
random.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
random.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
reaper.cpp Revert "fix warn unused" 2012-02-14 18:43:33 -06:00
reaper.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
rep.cpp Completed internal renaming of XREP/XREQ to ROUTER/DEALER 2012-03-22 11:36:19 -05:00
rep.hpp Completed internal renaming of XREP/XREQ to ROUTER/DEALER 2012-03-22 11:36:19 -05:00
req.cpp Completed internal renaming of XREP/XREQ to ROUTER/DEALER 2012-03-22 11:36:19 -05:00
req.hpp Completed internal renaming of XREP/XREQ to ROUTER/DEALER 2012-03-22 11:36:19 -05:00
router.cpp Merge pull request #302 from hurtonm/router_bugfix 2012-04-03 00:34:21 -07:00
router.hpp router: reimplement peer identification 2012-04-02 20:45:10 +02:00
select.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
select.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
session_base.cpp spaces deleted 2012-04-21 18:36:20 +04:00
session_base.hpp Resolve addresses in the calling thread on connect. 2012-02-16 14:42:55 +01:00
signaler.cpp Fix issue #335 2012-04-11 11:41:10 +02:00
signaler.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
socket_base.cpp Merge pull request #321 from shripchenko/master 2012-04-21 16:06:06 -07:00
socket_base.hpp Merge pull request #318 from shripchenko/master 2012-04-20 09:11:56 -07:00
stdint.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
stream_engine.cpp ETIMEDOUT is a valid error code here. Fixes intermittent assertion failure on laggy networks 2012-04-10 09:55:10 +09:00
stream_engine.hpp Get AIX 6.1 compiling again by making msg_t class explicit 2011-11-09 15:22:20 +01:00
sub.cpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
sub.hpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
tcp_address.cpp implement zmq_unbind(),zmq_disconnect(), zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID) 2012-04-18 23:42:11 +04:00
tcp_address.hpp fixes for 2012-04-20 19:16:26 +04:00
tcp_connecter.cpp initial implementation of tuning TCP keep-alives for TCP socket 2012-04-05 19:39:53 +04:00
tcp_connecter.hpp Resolve addresses in the calling thread on connect. 2012-02-16 14:42:55 +01:00
tcp_listener.cpp fixes for zmq_unbind() / zmq_disconnect() usage corner cases 2012-04-21 18:56:10 +04:00
tcp_listener.hpp some spaces cleanups + delete unused anymore zmq::max_sockets + some minor code chages 2012-04-13 13:26:57 +04:00
thread.cpp Add WinCE support. 2012-03-14 19:12:28 +04:00
thread.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
trie.cpp update lower bound flag when removing topics 2012-02-27 16:06:56 +00:00
trie.hpp Prune redundant nodes in the trie. 2012-01-03 16:24:44 +01:00
windows.hpp Add WinCE support. 2012-03-14 19:12:28 +04:00
wire.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
xpub.cpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
xpub.hpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
xsub.cpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
xsub.hpp Fixed issues #337, #341, and #340 2012-03-19 19:41:20 -05:00
ypipe.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
yqueue.hpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
zmq_utils.cpp Copyright dates adjusted to reflect reality 2011-11-01 18:06:11 +01:00
zmq.cpp 2nd try wuth sock->unbind() and sock->disconnect(). now with blackjack and const char*'s 2012-04-20 18:59:08 +04:00