+++ /dev/null
-#include <mach/mach.h>
-#include <mach/mach_time.h>
-#include <dispatch/dispatch.h>
-#include <dispatch/private.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-
-int
-main(void)
-{
- long double nano_per_lap;
- size_t i, cnt = 1000000;
- dispatch_future_t *df;
- uint64_t s, e;
-
- df = malloc(cnt * sizeof(df));
- assert(df);
-
- s = mach_absolute_time();
-
- for (i = 0; i < cnt; i++) {
- df[i] = dispatch_fork(dispatch_get_concurrent_queue(0), ^{
- });
- assert(df[i]);
- }
-
- for (i = 0; i < cnt; i++) {
- dispatch_join(df[i]);
- }
-
- e = mach_absolute_time();
-
- nano_per_lap = (e - s);
- nano_per_lap /= cnt;
-
- printf("%Lf nanoseconds per lap\n", nano_per_lap);
-
- return 0;
-}