site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=bHhkEV9he6h9xHkNVM/VY/9SubklswJu4oYGgpoX5HgMVo8j3FdgUlNPozQrYWJrpUXcTbX6TPJtn2rxcLugNGU3MZuwN6j6aHeb9rCyjKLpW8KfVzNKCBmWc4AMwPieLi4zPDNhnkt8hFR0k6m+ZlMNciwqB2FDRNO54EFSWfM=
Also, there are compare-and-swap routines already in libSystem:
<libkern/OSAtomic.h>
/* Compare and swap. They return true if the swap occured. */ bool OSAtomicCompareAndSwap32( int32_t oldValue, int32_t newValue, int32_t *theValue ); bool OSAtomicCompareAndSwap32Barrier( int32_t oldValue, int32_t newValue, int32_t *theValue );
Seems a shame to have to include an entire other framework just for a single assembly instruction :). It'd be really cool if apple had a lighter weight wrapper around such lock code :). Looking at atomic.s from xnu is what I usually do to find out what I need to hand-code so I can avoid that extra dependency and write more maintainable, and portable code. Dave _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This email sent to site_archiver@lists.apple.com