conform to apple's concurrency programming guide.