Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge libdispatch-1462.0.4 #809

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 110 additions & 0 deletions PATCHES
Original file line number Diff line number Diff line change
Expand Up @@ -434,3 +434,113 @@ github commits starting with 29bdc2f from
[3975b58] APPLIED rdar://44568645
[81dc900] APPLIED rdar://44568645
[6162a1d] APPLIED rdar://44568645
[c55ff6f] APPLIED rdar://54572081
[c4a7149] APPLIED rdar://54572081
[edce1fe] APPLIED rdar://54572081
[ac525a4] APPLIED rdar://54572081
[0710b29] APPLIED rdar://54572081
[e99de71] APPLIED rdar://54572081
[6d83ad5] APPLIED rdar://54572081
[3ed78b5] APPLIED rdar://54572081
[f6376cb] APPLIED rdar://54572081
[9acbab3] APPLIED rdar://54572081
[ca08b5f] APPLIED rdar://54572081
[775f9f2] APPLIED rdar://54572081
[db37bbc] APPLIED rdar://54572081
[9852dcb] APPLIED rdar://54572081
[9ec95bf] APPLIED rdar://54572081
[bd2367c] APPLIED rdar://54572081
[a736ea7] APPLIED rdar://54572081
[3e4ea66] APPLIED rdar://54572081
[c85c0d8] APPLIED rdar://54572081
[7187ea2] APPLIED rdar://54572081
[30eeb14] APPLIED rdar://54572081
[6a5c6d8] APPLIED rdar://54572081
[64a12c6] APPLIED rdar://54572081
[09ec354] APPLIED rdar://54572081
[5bcd598] APPLIED rdar://54572081
[7874a92] APPLIED rdar://54572081
[619775e] APPLIED rdar://54572081
[e3ae79b] APPLIED rdar://54572081
[fb368f6] APPLIED rdar://54572081
[afa6cc3] APPLIED rdar://54572081
[e6df818] APPLIED rdar://54572081
[7144ee3] APPLIED rdar://54572081
[60ffcc2] APPLIED rdar://54572081
[618b070] APPLIED rdar://54572081
[dde5892] APPLIED rdar://54572081
[81c9bf6] APPLIED rdar://54572081
[4b85ca6] APPLIED rdar://54572081
[ff3bf51] APPLIED rdar://54572081
[bc00e13] APPLIED rdar://54572081
[d44acc0] APPLIED rdar://54572081
[4659503] APPLIED rdar://54572081
[60fdf80] APPLIED rdar://54572081
[7a74af4] APPLIED rdar://54572081
[f20349f] APPLIED rdar://54572081
[ef9364c] APPLIED rdar://54572081
[9d485ca] APPLIED rdar://54572081
[cbd70d1] APPLIED rdar://54572081
[6e1825a] APPLIED rdar://54572081
[319bd33] APPLIED rdar://54572081
[6c5b3ba] APPLIED rdar://54572081
[7e7677b] APPLIED rdar://54572081
[9002f70] APPLIED rdar://54572081
[cc04868] APPLIED rdar://54572081
[dc0dd64] APPLIED rdar://54572081
[a5f5a92] APPLIED rdar://54572081
[e5ba042] APPLIED rdar://54572081
[a3bff44] APPLIED rdar://54572081
[2e3d5c0] APPLIED rdar://54572081
[1482ec9] APPLIED rdar://54572081
[6bf6cb1] APPLIED rdar://54572081
[aa13cad] APPLIED rdar://54572081
[b073d89] APPLIED rdar://54572081
[7784917] APPLIED rdar://54572081
[717b3f7] APPLIED rdar://54572081
[37010f0] APPLIED rdar://54572081
[251dba4] APPLIED rdar://54572081
[a18aa1f] APPLIED rdar://54572081
[e8d020e] APPLIED rdar://54572081
[90a84a1] APPLIED rdar://54572081
[7721660] APPLIED rdar://54572081
[c5af10f] APPLIED rdar://54572081
[f01432d] APPLIED rdar://54572081
[d0394bf] APPLIED rdar://54572081
[2b14a98] APPLIED rdar://54572081
[d32596b] APPLIED rdar://54572081
[52bc6b2] APPLIED rdar://54572081
[4169c8d] APPLIED rdar://54572081
[318f6e5] APPLIED rdar://54572081
[6a36af8] APPLIED rdar://54572081
[d11d565] APPLIED rdar://54572081
[d9740c2] APPLIED rdar://54572081
[fc917b4] APPLIED rdar://54572081
[f911a44] APPLIED rdar://54572081
[6d32c4d] APPLIED rdar://54572081
[9005cb4] APPLIED rdar://54572081
[68875cb] APPLIED rdar://54572081
[fc73866] APPLIED rdar://54572081
[3cf1bf3] APPLIED rdar://54572081
[3da29dd] APPLIED rdar://81276248
[90a45ce] APPLIED rdar://81276248
[37c8c28] APPLIED rdar://81276248
[c023edd] APPLIED rdar://81276248
[ab8a151] APPLIED rdar://81276248
[c66cb25] APPLIED rdar://81276248
[289e552] APPLIED rdar://81276248
[afd6b6d] APPLIED rdar://81276248
[4c91d20] APPLIED rdar://81276248
[2accb0b] APPLIED rdar://81276248
[b0b314c] APPLIED rdar://81276248
[c992dac] APPLIED rdar://81276248
[80b1772] APPLIED rdar://81276248
[1986f39] APPLIED rdar://81276248
[598ce42] APPLIED rdar://81276248
[feb4421] APPLIED rdar://81276248
[f152471] APPLIED rdar://81276248
[457b110] APPLIED rdar://81276248
[f13ea5d] APPLIED rdar://81276248
[1c303fa] APPLIED rdar://81276248
[34f383d] APPLIED rdar://81276248
[7870521] APPLIED rdar://81276248
16 changes: 13 additions & 3 deletions config/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

/* Define to 1 if you have the declaration of `CLOCK_REALTIME', and to 0 if
you don't. */
#define CLOCK_REALTIME 0
#define HAVE_DECL_CLOCK_REALTIME 0

/* Define to 1 if you have the declaration of `CLOCK_UPTIME', and to 0 if you
don't. */
Expand Down Expand Up @@ -61,6 +61,10 @@
you don't. */
#define HAVE_DECL_VQ_VERYLOWDISK 1

/* Define to 1 if you have the declaration of `VQ_SERVEREVENT', and to 0 if
you don't. */
#define HAVE_DECL_VQ_SERVEREVENT 1

/* Define to 1 if you have the declaration of `VQ_QUOTA', and to 0 if
you don't. */
#define HAVE_DECL_VQ_QUOTA 1
Expand All @@ -73,8 +77,8 @@
you don't. */
#define HAVE_DECL_VQ_DESIRED_DISK 1

/* Define to 1 if you have the declaration of `VQ_FREE_SPACE_CHANGE', and to 0 if
you don't. */
/* Define to 1 if you have the declaration of `VQ_FREE_SPACE_CHANGE`, and to 0
* if you don't */
#define HAVE_DECL_VQ_FREE_SPACE_CHANGE 1

/* Define to 1 if you have the <dlfcn.h> header file. */
Expand Down Expand Up @@ -125,6 +129,12 @@
/* Define if you have the Objective-C runtime */
#define HAVE_OBJC 1

/* Define to 1 if you have the `posix_fadvise' function. */
#define HAVE_POSIX_FADVISE 0

/* Define to 1 if you have the `posix_spawnp' function. */
#define HAVE_POSIX_SPAWNP 1

/* Define to 1 if you have the `pthread_key_init_np' function. */
#define HAVE_PTHREAD_KEY_INIT_NP 1

Expand Down
2 changes: 2 additions & 0 deletions dispatch/Dispatch.apinotes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
Name: Dispatch
63 changes: 55 additions & 8 deletions dispatch/base.h
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,27 @@
#define DISPATCH_ASSUME_NONNULL_END
#endif

#if __has_feature(bounds_attributes)
#define DISPATCH_ASSUME_ABI_SINGLE_BEGIN _Pragma("clang abi_ptr_attr set(single)")
#define DISPATCH_ASSUME_ABI_SINGLE_END _Pragma("clang abi_ptr_attr set(unsafe_indexable)")
#define DISPATCH_UNSAFE_INDEXABLE __attribute__((__unsafe_indexable__))
#define DISPATCH_COUNTED_BY(X) __attribute__((__counted_by__(X)))
#define DISPATCH_SIZED_BY(X) __attribute__((__sized_by__(X)))
#else
#define DISPATCH_ASSUME_ABI_SINGLE_BEGIN
#define DISPATCH_ASSUME_ABI_SINGLE_END
#define DISPATCH_UNSAFE_INDEXABLE
#define DISPATCH_COUNTED_BY(X)
#define DISPATCH_SIZED_BY(X)
#endif

#define DISPATCH_OSX_SUPPORTS_AT_LEAST(macos, ios, tvos, watchos) \
( (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= macos) \
|| (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= ios) \
|| (defined(__TV_OS_VERSION_MIN_REQUIRED) && __TV_OS_VERSION_MIN_REQUIRED >= tvos) \
|| (defined(__WATCH_OS_VERSION_MIN_REQUIRED) && __WATCH_OS_VERSION_MIN_REQUIRED >= watchos) \
)

#if !__has_feature(nullability)
#ifndef _Nullable
#define _Nullable
Expand All @@ -264,13 +285,35 @@
#endif
#endif

#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums) || defined(_WIN32)
#if __has_attribute(enum_extensibility)
#define __DISPATCH_ENUM_ATTR __attribute__((__enum_extensibility__(open)))
#define __DISPATCH_ENUM_ATTR_CLOSED __attribute__((__enum_extensibility__(closed)))
#else
#define __DISPATCH_ENUM_ATTR
#define __DISPATCH_ENUM_ATTR_CLOSED
#endif // __has_attribute(enum_extensibility)

#if __has_attribute(flag_enum)
#define __DISPATCH_OPTIONS_ATTR __attribute__((__flag_enum__))
#else
#define __DISPATCH_OPTIONS_ATTR
#endif // __has_attribute(flag_enum)


#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums) || \
__has_extension(cxx_fixed_enum) || defined(_WIN32)
#define DISPATCH_ENUM(name, type, ...) \
typedef enum : type { __VA_ARGS__ } name##_t
typedef enum : type { __VA_ARGS__ } __DISPATCH_ENUM_ATTR name##_t
#define DISPATCH_OPTIONS(name, type, ...) \
typedef enum : type { __VA_ARGS__ } __DISPATCH_OPTIONS_ATTR __DISPATCH_ENUM_ATTR name##_t
#else
#define DISPATCH_ENUM(name, type, ...) \
enum { __VA_ARGS__ }; typedef type name##_t
#endif
enum { __VA_ARGS__ } __DISPATCH_ENUM_ATTR; typedef type name##_t
#define DISPATCH_OPTIONS(name, type, ...) \
enum { __VA_ARGS__ } __DISPATCH_OPTIONS_ATTR __DISPATCH_ENUM_ATTR; typedef type name##_t
#endif // __has_feature(objc_fixed_enum) ...



#if __has_feature(enumerator_attributes)
#define DISPATCH_ENUM_API_AVAILABLE(...) API_AVAILABLE(__VA_ARGS__)
Expand All @@ -283,12 +326,11 @@
#define DISPATCH_ENUM_API_DEPRECATED_WITH_REPLACEMENT(...)
#endif

#if defined(SWIFT_SDK_OVERLAY_DISPATCH_EPOCH) && \
SWIFT_SDK_OVERLAY_DISPATCH_EPOCH >= 2
#ifdef __swift__
#define DISPATCH_SWIFT3_OVERLAY 1
#else
#else // __swift__
#define DISPATCH_SWIFT3_OVERLAY 0
#endif // SWIFT_SDK_OVERLAY_DISPATCH_EPOCH >= 2
#endif // __swift__

#if __has_feature(attribute_availability_swift)
#define DISPATCH_SWIFT_UNAVAILABLE(_msg) \
Expand Down Expand Up @@ -321,6 +363,11 @@
#define DISPATCH_TRANSPARENT_UNION
#endif

DISPATCH_ASSUME_ABI_SINGLE_BEGIN

DISPATCH_SWIFT_UNAVAILABLE("Unavailable in Swift")
typedef void (*dispatch_function_t)(void *_Nullable);

DISPATCH_ASSUME_ABI_SINGLE_END

#endif
30 changes: 23 additions & 7 deletions dispatch/block.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
*/

DISPATCH_ASSUME_NONNULL_BEGIN
DISPATCH_ASSUME_ABI_SINGLE_BEGIN

__BEGIN_DECLS

Expand Down Expand Up @@ -100,19 +101,26 @@ __BEGIN_DECLS
* for synchronous execution or when the dispatch block object is invoked
* directly.
*/
DISPATCH_ENUM(dispatch_block_flags, unsigned long,
DISPATCH_REFINED_FOR_SWIFT
DISPATCH_OPTIONS(dispatch_block_flags, unsigned long,
DISPATCH_BLOCK_BARRIER
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x1,
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItemFlags.barrier") = 0x1,
DISPATCH_BLOCK_DETACHED
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x2,
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItemFlags.detached") = 0x2,
DISPATCH_BLOCK_ASSIGN_CURRENT
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x4,
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItemFlags.assignCurrentContext") = 0x4,
DISPATCH_BLOCK_NO_QOS_CLASS
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x8,
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItemFlags.noQoS") = 0x8,
DISPATCH_BLOCK_INHERIT_QOS_CLASS
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x10,
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItemFlags.inheritQoS") = 0x10,
DISPATCH_BLOCK_ENFORCE_QOS_CLASS
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0)) = 0x20,
DISPATCH_ENUM_API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItemFlags.enforceQoS") = 0x20,
);

/*!
Expand Down Expand Up @@ -168,6 +176,7 @@ DISPATCH_ENUM(dispatch_block_flags, unsigned long,
API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_RETURNS_RETAINED_BLOCK
DISPATCH_WARN_RESULT DISPATCH_NOTHROW
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItem()")
dispatch_block_t
dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);

Expand Down Expand Up @@ -240,6 +249,7 @@ dispatch_block_create(dispatch_block_flags_t flags, dispatch_block_t block);
API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_EXPORT DISPATCH_NONNULL4 DISPATCH_RETURNS_RETAINED_BLOCK
DISPATCH_WARN_RESULT DISPATCH_NOTHROW
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItem()")
dispatch_block_t
dispatch_block_create_with_qos_class(dispatch_block_flags_t flags,
dispatch_qos_class_t qos_class, int relative_priority,
Expand Down Expand Up @@ -272,6 +282,7 @@ dispatch_block_create_with_qos_class(dispatch_block_flags_t flags,
*/
API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_EXPORT DISPATCH_NONNULL2 DISPATCH_NOTHROW
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItem.perform()")
void
dispatch_block_perform(dispatch_block_flags_t flags,
DISPATCH_NOESCAPE dispatch_block_t block);
Expand Down Expand Up @@ -323,6 +334,7 @@ dispatch_block_perform(dispatch_block_flags_t flags,
*/
API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NOTHROW
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItem.wait(timeout:)")
intptr_t
dispatch_block_wait(dispatch_block_t block, dispatch_time_t timeout);

Expand Down Expand Up @@ -364,6 +376,7 @@ dispatch_block_wait(dispatch_block_t block, dispatch_time_t timeout);
*/
API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItem.notify(queue:execute:)")
void
dispatch_block_notify(dispatch_block_t block, dispatch_queue_t queue,
dispatch_block_t notification_block);
Expand Down Expand Up @@ -396,6 +409,7 @@ dispatch_block_notify(dispatch_block_t block, dispatch_queue_t queue,
*/
API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItem.cancel()")
void
dispatch_block_cancel(dispatch_block_t block);

Expand All @@ -416,11 +430,13 @@ dispatch_block_cancel(dispatch_block_t block);
API_AVAILABLE(macos(10.10), ios(8.0))
DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_WARN_RESULT DISPATCH_PURE
DISPATCH_NOTHROW
DISPATCH_SWIFT_UNAVAILABLE("Use DispatchWorkItem.isCancelled")
intptr_t
dispatch_block_testcancel(dispatch_block_t block);

__END_DECLS

DISPATCH_ASSUME_ABI_SINGLE_END
DISPATCH_ASSUME_NONNULL_END

#endif // __BLOCKS__
Expand Down
5 changes: 3 additions & 2 deletions dispatch/darwin/module.modulemap
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
module Dispatch [system] [extern_c] {
module Dispatch [system] {
umbrella header "dispatch.h"
export *
exclude header "introspection.h"
}

module DispatchIntrospection [system] [extern_c] {
module DispatchIntrospection [system] {
header "introspection.h"
export *
}
Loading