nativity/lib/libc/include/any-macos-any/os/workgroup_parallel.h
David Gonzalez Martin 38011a233c Integrate libs
2024-03-02 12:58:12 -06:00

77 lines
2.3 KiB
C

/*
* Copyright (c) 2020 Apple Inc. All rights reserved.
*
* @APPLE_APACHE_LICENSE_HEADER_START@
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @APPLE_APACHE_LICENSE_HEADER_END@
*/
#ifndef __OS_WORKGROUP_PARALLEL__
#define __OS_WORKGROUP_PARALLEL__
#ifndef __OS_WORKGROUP_INDIRECT__
#error "Please #include <os/workgroup.h> instead of this file directly."
#include <os/workgroup_base.h> // For header doc
#endif
#include <os/workgroup_object.h>
__BEGIN_DECLS
OS_WORKGROUP_ASSUME_NONNULL_BEGIN
OS_WORKGROUP_ASSUME_ABI_SINGLE_BEGIN
/*!
* @typedef os_workgroup_parallel_t
*
* @abstract
* A subclass of an os_workgroup_t for tracking parallel work.
*/
OS_WORKGROUP_SUBCLASS_DECL_PROTO(os_workgroup_parallel, Parallelizable);
OS_WORKGROUP_SUBCLASS_DECL(os_workgroup_parallel, os_workgroup, WorkGroupParallel);
/*!
* @function os_workgroup_parallel_create
*
* @abstract
* Creates an os_workgroup_t which tracks a parallel workload.
* A newly created os_workgroup_interval_t has no initial member threads -
* in particular the creating thread does not join the os_workgroup_parallel_t
* implicitly.
*
* See also os_workgroup_max_parallel_threads().
*
* @param name
* A client specified string for labelling the workgroup. This parameter is
* optional and can be NULL.
*
* @param attr
* The requested set of workgroup attributes. NULL is to be specified for the
* default set of attributes.
*/
API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0))
OS_WORKGROUP_EXPORT OS_WORKGROUP_RETURNS_RETAINED
OS_SWIFT_NAME(WorkGroupParallel.init(__name:attr:))
os_workgroup_parallel_t _Nullable
os_workgroup_parallel_create(const char *OS_WORKGROUP_UNSAFE_INDEXABLE _Nullable name,
os_workgroup_attr_t _Nullable attr);
OS_WORKGROUP_ASSUME_ABI_SINGLE_END
OS_WORKGROUP_ASSUME_NONNULL_END
__END_DECLS
#endif /* __OS_WORKGROUP_PARALLEL__ */