[libdispatch-dev] Solaris portability, dispatch.h - PATCH [4/6] REVISED
Joakim Johansson
jocke at tbricks.com
Fri Nov 13 00:24:26 PST 2009
Thanks!
I skipped dispatch_test.h on purpose for now, I intend to try to
address additional issues with the tests overall a bit later and
thought to do that change also together with those. (e.g. lack of
asprintf() on solaris etc)
What about the CPU detection patch, is it bad style to combine
platform and capability ifdef checks, or is it ok?
Joakim
On 13 nov 2009, at 01.13, Robert Watson <robert at fledge.watson.org>
wrote:
>
> On Tue, 10 Nov 2009, Joakim Johansson wrote:
>
>> Ok, patch attached below.
>>
>> I also removed the include of cdefs.h in dispatch.h, as it no
>> longer seems required.
>
> Committed as r150, but with minor tweaks so that the definitions
> exactly match those on Mac OS X. I notice also that dispatch_test.h
> isn't updated?
>
> Robert
>
>>
>> Joakim
>>
>>
>> On 10 nov 2009, at 12.50, Robert Watson wrote:
>>
>>>
>>> On Mon, 9 Nov 2009, Joakim Johansson wrote:
>>>
>>>> I'd certainly be glad with that approach and would happily
>>>> provide the simple diffs for it if the maintainers are happy with
>>>> it, it would definitely look cleaner.
>>>>
>>>> Kevin/Robert?
>>>
>>> I'm not sure I have any specific opinion on this, but if we're
>>> going to be defining __BEGIN_DECLS/__END_DECLS variations in
>>> dispatch.h, let's go whole hog (as it were) and use
>>> __DISPATCH_BEGIN_DECLS.
>>>
>>> Robert
>>>
>>>>
>>>> Joakim
>>>>
>>>>
>>>> On 7 nov 2009, at 16.55, Paolo Bonzini wrote:
>>>>
>>>>> On 11/06/2009 11:29 PM, Robert Watson wrote:
>>>>>> +
>>>>>> +#ifndef __BEGIN_DECLS
>>>>>> +# if defined(__cplusplus)
>>>>>> +# define __BEGIN_DECLS extern "C" {
>>>>>> +# define __END_DECLS };
>>>>>> +# else /* __BEGIN_DECLS */
>>>>>> +# define __BEGIN_DECLS
>>>>>> +# define __END_DECLS
>>>>>> +# endif /* __BEGIN_DECLS */
>>>>>> +#endif /* __BEGIN_DECLS */
>>>>> Just remove cdefs.h completely and do s/__BEGIN_DECLS/
>>>>> __DISPATCH_BEGIN_DECLS/ (similarly for END)?
>>>>> Paolo
>>>>> _______________________________________________
>>>>> libdispatch-dev mailing list
>>>>> libdispatch-dev at lists.macosforge.org
>>>>> http://lists.macosforge.org/mailman/listinfo.cgi/libdispatch-dev
>>>>
>>>> _______________________________________________
>>>> libdispatch-dev mailing list
>>>> libdispatch-dev at lists.macosforge.org
>>>> http://lists.macosforge.org/mailman/listinfo.cgi/libdispatch-dev
>>
>>
>> -----
>>> /usr/bin/svn diff
>> Index: dispatch/benchmark.h
>> ===================================================================
>> --- dispatch/benchmark.h (revision 147)
>> +++ dispatch/benchmark.h (working copy)
>> @@ -32,7 +32,7 @@
>> #include <dispatch/base.h> // for HeaderDoc
>> #endif
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> /*!
>> * @function dispatch_benchmark
>> @@ -78,6 +78,6 @@
>> uint64_t
>> dispatch_benchmark_f(size_t count, void *ctxt, void (*func)(void *));
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: dispatch/group.h
>> ===================================================================
>> --- dispatch/group.h (revision 147)
>> +++ dispatch/group.h (working copy)
>> @@ -33,7 +33,7 @@
>> */
>> DISPATCH_DECL(dispatch_group);
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> /*!
>> * @function dispatch_group_create
>> @@ -268,6 +268,6 @@
>> void
>> dispatch_group_leave(dispatch_group_t group);
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: dispatch/time.h
>> ===================================================================
>> --- dispatch/time.h (revision 147)
>> +++ dispatch/time.h (working copy)
>> @@ -28,7 +28,7 @@
>>
>> #include <stdint.h>
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> struct timespec;
>>
>> @@ -108,6 +108,6 @@
>> dispatch_time_t
>> dispatch_walltime(const struct timespec *when, int64_t delta);
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: dispatch/dispatch.h
>> ===================================================================
>> --- dispatch/dispatch.h (revision 147)
>> +++ dispatch/dispatch.h (working copy)
>> @@ -25,12 +25,19 @@
>> #include <Availability.h>
>> #include <TargetConditionals.h>
>> #endif
>> -#include <sys/cdefs.h>
>> #include <stddef.h>
>> #include <stdint.h>
>> #include <stdbool.h>
>> #include <stdarg.h>
>>
>> +#if defined(__cplusplus)
>> +# define __DISPATCH_BEGIN_DECLS extern "C" {
>> +# define __DISPATCH_END_DECLS };
>> +#else
>> +# define __DISPATCH_BEGIN_DECLS
>> +# define __DISPATCH_END_DECLS
>> +#endif
>> +
>> #ifndef __OSX_AVAILABLE_STARTING
>> #define __OSX_AVAILABLE_STARTING(x, y)
>> #endif
>> Index: dispatch/source.h
>> ===================================================================
>> --- dispatch/source.h (revision 147)
>> +++ dispatch/source.h (working copy)
>> @@ -240,7 +240,7 @@
>> DISPATCH_VNODE_REVOKE = 0x40,
>> };
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> /*!
>> * @function dispatch_source_create
>> @@ -580,6 +580,6 @@
>> uint64_t interval,
>> uint64_t leeway);
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: dispatch/semaphore.h
>> ===================================================================
>> --- dispatch/semaphore.h (revision 147)
>> +++ dispatch/semaphore.h (working copy)
>> @@ -34,7 +34,7 @@
>> */
>> DISPATCH_DECL(dispatch_semaphore);
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> /*!
>> * @function dispatch_semaphore_create
>> @@ -107,6 +107,6 @@
>> long
>> dispatch_semaphore_signal(dispatch_semaphore_t dsema);
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif /* __DISPATCH_SEMAPHORE__ */
>> Index: dispatch/once.h
>> ===================================================================
>> --- dispatch/once.h (revision 147)
>> +++ dispatch/once.h (working copy)
>> @@ -26,7 +26,7 @@
>> #include <dispatch/base.h> // for HeaderDoc
>> #endif
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> /*!
>> * @typedef dispatch_once_t
>> @@ -72,6 +72,6 @@
>> #define dispatch_once_f(x, y, z) do { if (__builtin_expect(*(x),
>> ~0l) != ~0l) dispatch_once_f((x), (y), (z)); } while (0)
>> #endif
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: dispatch/queue.h
>> ===================================================================
>> --- dispatch/queue.h (revision 147)
>> +++ dispatch/queue.h (working copy)
>> @@ -111,7 +111,7 @@
>> typedef void (^dispatch_block_t)(void);
>> #endif
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> /*!
>> * @function dispatch_async
>> @@ -563,6 +563,6 @@
>> void *context,
>> dispatch_function_t work);
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: dispatch/object.h
>> ===================================================================
>> --- dispatch/object.h (revision 147)
>> +++ dispatch/object.h (working copy)
>> @@ -26,7 +26,7 @@
>> #include <dispatch/base.h> // for HeaderDoc
>> #endif
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> /*!
>> * @function dispatch_debug
>> @@ -190,6 +190,6 @@
>> void
>> dispatch_resume(dispatch_object_t object);
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: src/source_private.h
>> ===================================================================
>> --- src/source_private.h (revision 147)
>> +++ src/source_private.h (working copy)
>> @@ -109,7 +109,7 @@
>> DISPATCH_PROC_REAP = 0x10000000,
>> };
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> #if HAVE_MACH
>> /*!
>> @@ -126,6 +126,6 @@
>> dispatch_mig_server(dispatch_source_t ds, size_t maxmsgsz,
>> dispatch_mig_callback_t callback);
>> #endif
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: src/legacy.h
>> ===================================================================
>> --- src/legacy.h (revision 147)
>> +++ src/legacy.h (working copy)
>> @@ -93,7 +93,7 @@
>>
>> typedef void (*dispatch_queue_finalizer_function_t)(void *,
>> dispatch_queue_t);
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> /*!
>> * @function dispatch_queue_attr_create
>> @@ -759,6 +759,6 @@
>>
>> #endif /* HAVE_MACH */
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: src/private.h
>> ===================================================================
>> --- src/private.h (revision 147)
>> +++ src/private.h (working copy)
>> @@ -65,7 +65,7 @@
>> /* LEGACY: Use DISPATCH_API_VERSION */
>> #define LIBDISPATCH_VERSION DISPATCH_API_VERSION
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>> DISPATCH_NOTHROW
>> void
>> @@ -120,6 +120,6 @@
>> dispatch_mach_msg_get_context(mach_msg_header_t *msg);
>> #endif
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>> Index: src/queue_private.h
>> ===================================================================
>> --- src/queue_private.h (revision 147)
>> +++ src/queue_private.h (working copy)
>> @@ -32,7 +32,7 @@
>> #include <dispatch/base.h> // for HeaderDoc
>> #endif
>>
>> -__BEGIN_DECLS
>> +__DISPATCH_BEGIN_DECLS
>>
>>
>> /*!
>> @@ -117,6 +117,6 @@
>> } dispatch_queue_offsets;
>>
>>
>> -__END_DECLS
>> +__DISPATCH_END_DECLS
>>
>> #endif
>>
>> _______________________________________________
>> libdispatch-dev mailing list
>> libdispatch-dev at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/libdispatch-dev
>>
More information about the libdispatch-dev
mailing list