mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Add a Flag to Disable Main Thread Assertions #trivial (#348)
* Add a thread-flag for disabling main thread assertions * Fix the license header
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
|
||||
#import <Foundation/NSException.h>
|
||||
#import <pthread.h>
|
||||
#import <AsyncDisplayKit/ASBaseDefines.h>
|
||||
|
||||
#define ASDISPLAYNODE_ASSERTIONS_ENABLED (!defined(NS_BLOCK_ASSERTIONS))
|
||||
|
||||
@@ -42,8 +43,8 @@
|
||||
#define ASDisplayNodeAssertNotInstantiable() ASDisplayNodeAssert(NO, nil, @"This class is not instantiable.");
|
||||
#define ASDisplayNodeAssertNotSupported() ASDisplayNodeAssert(NO, nil, @"This method is not supported by class %@", [self class]);
|
||||
|
||||
#define ASDisplayNodeAssertMainThread() ASDisplayNodeAssert(0 != pthread_main_np(), @"This method must be called on the main thread")
|
||||
#define ASDisplayNodeCAssertMainThread() ASDisplayNodeCAssert(0 != pthread_main_np(), @"This function must be called on the main thread")
|
||||
#define ASDisplayNodeAssertMainThread() ASDisplayNodeAssert(ASMainThreadAssertionsAreDisabled() || 0 != pthread_main_np(), @"This method must be called on the main thread")
|
||||
#define ASDisplayNodeCAssertMainThread() ASDisplayNodeCAssert(ASMainThreadAssertionsAreDisabled() || 0 != pthread_main_np(), @"This function must be called on the main thread")
|
||||
|
||||
#define ASDisplayNodeAssertNotMainThread() ASDisplayNodeAssert(0 == pthread_main_np(), @"This method must be called off the main thread")
|
||||
#define ASDisplayNodeCAssertNotMainThread() ASDisplayNodeCAssert(0 == pthread_main_np(), @"This function must be called off the main thread")
|
||||
@@ -69,6 +70,23 @@
|
||||
#define ASDisplayNodeErrorDomain @"ASDisplayNodeErrorDomain"
|
||||
#define ASDisplayNodeNonFatalErrorCode 1
|
||||
|
||||
/**
|
||||
* In debug methods, it can be useful to disable main thread assertions to get valuable information,
|
||||
* even if it means violating threading requirements. These functions are used in -debugDescription and let
|
||||
* threads decide to suppress/re-enable main thread assertions.
|
||||
*/
|
||||
#pragma mark - Main Thread Assertions Disabling
|
||||
|
||||
ASDISPLAYNODE_EXTERN_C_BEGIN
|
||||
BOOL ASMainThreadAssertionsAreDisabled();
|
||||
|
||||
void ASPushMainThreadAssertionsDisabled();
|
||||
|
||||
void ASPopMainThreadAssertionsDisabled();
|
||||
ASDISPLAYNODE_EXTERN_C_END
|
||||
|
||||
#pragma mark - Non-Fatal Assertions
|
||||
|
||||
/// Returns YES if assertion passed, NO otherwise.
|
||||
#define ASDisplayNodeAssertNonFatal(condition, desc, ...) ({ \
|
||||
BOOL __evaluated = condition; \
|
||||
|
||||
Reference in New Issue
Block a user