The frameworks expect the original thread to run its run loop, so input
sources (like distributed notifications) get processed. For example,
Core Audio on Snow Leopard doesn't track changes in the default ouput
device, such as when headphones are plugged in, without this.