libuv/src
Sai Ke WANG d0a27baa7d sunos: fix cmpxchgi and cmpxchgl type error
atomic_cas_ptr() is for compare-and-swap pointer addresses.
So when building 64 bit:

1. `ptr` is used casted to a pointer value (4-byte into 8-byte).
2. atomic_cas_ptr reads 8-byte at `ptr` and returns

In the case of `uv_async_send`, if handle->pending is 0, cmpxchgi()
actually returns the value of the 4-bytes past handle->pending,
causing uv__async_send to never be called.

The modified test-async-null-cb.c hangs at uv_run in this case.

PR-URL: https://github.com/libuv/libuv/pull/1361
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-07-01 00:24:42 +02:00
..
unix sunos: fix cmpxchgi and cmpxchgl type error 2017-07-01 00:24:42 +02:00
win win,pipe: race condition canceling readfile thread 2017-06-23 20:39:30 +02:00
fs-poll.c unix, win: count null byte on UV_ENOBUFS 2016-03-03 09:23:10 +01:00
heap-inl.h heap: fix heap_remove() 2014-05-23 20:04:42 +04:00
inet.c win: use the MSVC provided snprintf where possible 2015-09-29 09:01:33 +02:00
queue.h unix: use QUEUE_MOVE when iterating over lists 2015-10-08 21:47:43 +02:00
threadpool.c unix,windows: refactor request init logic 2017-03-21 16:14:09 +01:00
uv-common.c fs: fix crash in uv_fs_scandir_next 2017-01-17 21:15:43 -06:00
uv-common.h unix,windows: refactor request init logic 2017-03-21 16:14:09 +01:00
version.c core: add UV_VERSION_HEX macro 2015-06-29 23:08:41 +02:00