<commit_before>//
//  JEDispatch.h
//  JEToolkit
//
//  Created by <NAME> on 2013/09/28.
//  Copyright (c) 2013 <NAME>. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "JECompilerDefines.h"


/*! Dispatches a block to a concurrent global queue. Convenience method equivalent to calling dispatch_async() with dispatch_get_global_queue()
 */
JE_EXTERN JE_NONNULL_ALL
void JEDispatchConcurrent(dispatch_block_t block);

/*! Dispatches a block to a concurrent global queue after a delay. Convenience method equivalent to calling dispatch_after() with dispatch_get_global_queue()
 */
JE_EXTERN JE_NONNULL(2)
void JEDispatchConcurrentAfter(NSTimeInterval delay, dispatch_block_t block);

/*! Dispatches a block to the main queue. Convenience method equivalent to calling dispatch_async() with dispatch_get_main_queue()<commit_msg>dispatch once<commit_after>//
//  JEDispatch.h
//  JEToolkit
//
//  Created by <NAME> on 2013/09/28.
//  Copyright (c) 2013 <NAME>. All rights reserved.
//

#import <Foundation/Foundation.h>

#import "JECompilerDefines.h"

/*! Execute a block once and only once.
 */
#define JEDispatchOnce(block) \
    do { \
        static dispatch_once_t __je_dispatch_once_onceToken; \
        dispatch_once(&__je_dispatch_once_onceToken, block); \
    } while(NO)


JE_EXTERN JE_NONNULL_ALL
void JEDispatchConcurrent(dispatch_block_t block);

/*! Dispatches a block to a concurrent global queue. Convenience method equivalent to calling dispatch_async() with dispatch_get_global_queue()
 */
JE_EXTERN JE_NONNULL_ALL
void JEDispatchConcurrent(dispatch_block_t block);

/*! Dispatches a block to a concurrent global queue after a delay. Convenience method equivalent to calling dispatch_after() with dispatch_get_global_queue()
 */
JE_EXTERN JE_NONNULL(2)
void JEDispatchConcurrentAfter(NSTimeInterval delay, dispatch_block_t block);

/*! Dispatches a block to the main queue. Convenience method equivalent to calling dispatch_async() with dispatch_get_main_queue()
{'fraction_non_alphanumeric': 0.08822055137844612, 'fraction_numerical': 0.013032581453634085, 'mean_word_length': 4.993993993993994, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5695316', 'n_tokens_mistral': 648, 'n_tokens_neox': 609, 'n_words': 183}