]> git.saurik.com Git - apple/objc4.git/blobdiff - test/load-parallel0.m
objc4-437.tar.gz
[apple/objc4.git] / test / load-parallel0.m
diff --git a/test/load-parallel0.m b/test/load-parallel0.m
new file mode 100644 (file)
index 0000000..dc410d6
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef N
+#error -DN=n missing
+#endif
+
+#include <stdio.h>
+#include <sched.h>
+#include <unistd.h>
+#include <libkern/OSAtomic.h>
+extern int state;
+
+#define CLASS0(n,nn)                                                    \
+    @interface C_##n##_##nn @end                                        \
+    @implementation C_##n##_##nn                                        \
+    +(void)load { OSAtomicIncrement32(&state); usleep(10); }            \
+    @end
+
+#define CLASS(n,nn) CLASS0(n,nn)
+
+CLASS(a,N)
+CLASS(b,N)
+CLASS(c,N)
+CLASS(d,N)
+CLASS(e,N)
+CLASS(f,N)
+CLASS(g,N)
+CLASS(h,N)
+CLASS(i,N)
+CLASS(j,N)
+CLASS(k,N)
+CLASS(l,N)
+CLASS(m,N)
+CLASS(n,N)
+CLASS(o,N)
+CLASS(p,N)
+CLASS(q,N)
+CLASS(r,N)
+CLASS(s,N)
+CLASS(t,N)
+CLASS(u,N)
+CLASS(v,N)
+CLASS(w,N)
+CLASS(x,N)
+CLASS(y,N)
+CLASS(z,N)