libXDispatch 0.6
include/libdispatch/once.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2008-2009 Apple Inc. All rights reserved.
00003  *
00004  * @APPLE_APACHE_LICENSE_HEADER_START@
00005  * 
00006  * Licensed under the Apache License, Version 2.0 (the "License");
00007  * you may not use this file except in compliance with the License.
00008  * You may obtain a copy of the License at
00009  * 
00010  *     http://www.apache.org/licenses/LICENSE-2.0
00011  * 
00012  * Unless required by applicable law or agreed to in writing, software
00013  * distributed under the License is distributed on an "AS IS" BASIS,
00014  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00015  * See the License for the specific language governing permissions and
00016  * limitations under the License.
00017  * 
00018  * @APPLE_APACHE_LICENSE_HEADER_END@
00019  */
00020 
00021 #ifndef __DISPATCH_ONCE__
00022 #define __DISPATCH_ONCE__
00023 
00024 #ifndef __DISPATCH_INDIRECT__
00025 #error "Please #include <xdispatch/dispatch.h> instead of this file directly."
00026 #include "base.h" // for HeaderDoc
00027 #endif
00028 
00029 __DISPATCH_BEGIN_DECLS
00030 
00038 typedef intptr_t dispatch_once_t;
00039 
00057 #ifdef __BLOCKS__
00058 __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_4_0)
00059 DISPATCH_EXPORT DISPATCH_NONNULL_ALL DISPATCH_NOTHROW
00060 void
00061 dispatch_once(dispatch_once_t *predicate, dispatch_block_t block);
00062 #ifdef __GNUC__
00063 #define dispatch_once(x, ...) do { if (__builtin_expect(*(x), ~0l) != ~0l) dispatch_once((x), (__VA_ARGS__)); } while (0)
00064 #endif
00065 #endif
00066 
00067 __OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_4_0)
00068 DISPATCH_EXPORT DISPATCH_NONNULL1 DISPATCH_NONNULL3 DISPATCH_NOTHROW
00069 void
00070 dispatch_once_f(dispatch_once_t *predicate, void *context, void (*function)(void *));
00071 #ifdef __GNUC__
00072 #define dispatch_once_f(x, y, z) do { if (__builtin_expect(*(x), ~0l) != ~0l) dispatch_once_f((x), (y), (z)); } while (0)
00073 #endif
00074 
00075 __DISPATCH_END_DECLS
00076 
00077 #endif

Generated on Wed Feb 22 2012 19:57:00 for libXDispatch by Doxygen 1.7.4
Content © 2011-2012 MLBA (about | privacy) – Design © 2010-2012 Emzeat. All Rights reserved.