Skip to content

Instantly share code, notes, and snippets.

@edwardean
Created December 17, 2015 08:48
Show Gist options
  • Save edwardean/8367a3cc004c414bf613 to your computer and use it in GitHub Desktop.
Save edwardean/8367a3cc004c414bf613 to your computer and use it in GitHub Desktop.
#import <objc/runtime.h>
#define AtomicRetainedSetToFrom(dest, source) \
objc_setProperty(self, _cmd, (ptrdiff_t)(&dest) - (ptrdiff_t)(self), source, YES, false)
#define AtomicCopiedSetToFrom(dest, source) \
objc_setProperty(self, _cmd, (ptrdiff_t)(&dest) - (ptrdiff_t)(self), source, true, true)
#define AtomicAutoreleaseGet(source) \
objc_getProperty(self, _cmd, (ptrdiff_t)(&source) - (ptrdiff_t)(self), true)
#define AtomicStructToFrom(dest, source) \
objc_copyStruct(&dest, &source, sizeof(__typeof__(source)), false, true)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment