[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