RFR (XXS) 8037295: Add size_t versions of Atomic::add, dec, and inc

David Simms david.simms at oracle.com
Wed Mar 26 09:55:04 UTC 2014


On 26/03/2014 10:23 a.m., David Holmes wrote:
>
> This looks okay to me. Is there any reason not to provide xchg and 
> cmpxchg size_t variants too?
>
> Thanks,
> David H.
>

There seems to be only one currently valid use (task queue), but it 
still requires casting...then there's a requirement for some ugly macro 
to check if "size_t == unsigned int"...in which case we already have 
those variants, i.e.:

+#if (UINT_MAX == SIZE_MAX)  // size_t is an "unsigned int"
+#define ATOMIC_SIZE_T_IS_UINT
+#endif
+

+#ifndef ATOMIC_SIZE_T_IS_UINT // else we already have it
+  inline static size_t   cmpxchg    (size_t   exchange_value, volatile size_t*   dest, size_t   compare_value);
+#endif

I didn't find this appealing (tried to see if templates made it 
better...but this was even worse), and therefore chickened out.

Thanks for the review.
/Mr. Simms


More information about the hotspot-runtime-dev mailing list