From d1af9be41282a729cd9d6c0fa31ac3eb4ccadd76 Mon Sep 17 00:00:00 2001 From: CreaterOS <2639563508@qq.com> Date: Thu, 27 Aug 2020 11:47:24 +0800 Subject: [PATCH 1/2] Modify the spin lock method and change Apple's abandonment of OSSpinkLock --- Aspects.m | 10 ++++++++-- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 Aspects.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Aspects.m b/Aspects.m index c907066..b02d18e 100644 --- a/Aspects.m +++ b/Aspects.m @@ -6,6 +6,7 @@ // #import "Aspects.h" +#import #import #import #import @@ -159,10 +160,15 @@ static BOOL aspect_remove(AspectIdentifier *aspect, NSError **error) { } static void aspect_performLocked(dispatch_block_t block) { - static OSSpinLock aspect_lock = OS_SPINLOCK_INIT; + /*static OSSpinLock aspect_lock = OS_SPINLOCK_INIT; OSSpinLockLock(&aspect_lock); block(); - OSSpinLockUnlock(&aspect_lock); + OSSpinLockUnlock(&aspect_lock);*/ + os_unfair_lock_t ascpect_lock = OS_UNFAIR_LOCK_INIT; + os_unfair_lock_lock(ascpect_lock); + block(); + os_unfair_lock_unlock(ascpect_lock); + } static SEL aspect_aliasForSelector(SEL selector) { diff --git a/Aspects.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Aspects.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Aspects.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + From 2482a4b1954757d79914caef4aa6ded8b19cb531 Mon Sep 17 00:00:00 2001 From: CreaterOS <2639563508@qq.com> Date: Thu, 27 Aug 2020 11:50:10 +0800 Subject: [PATCH 2/2] @CreaterOS Modify the spin lock method and change Apple's abandonment of OSSpinkLock --- Aspects.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Aspects.m b/Aspects.m index b02d18e..017cac3 100644 --- a/Aspects.m +++ b/Aspects.m @@ -164,7 +164,7 @@ static void aspect_performLocked(dispatch_block_t block) { OSSpinLockLock(&aspect_lock); block(); OSSpinLockUnlock(&aspect_lock);*/ - os_unfair_lock_t ascpect_lock = OS_UNFAIR_LOCK_INIT; + os_unfair_lock_t ascpect_lock = &(OS_UNFAIR_LOCK_INIT); os_unfair_lock_lock(ascpect_lock); block(); os_unfair_lock_unlock(ascpect_lock);