Index: src/benchmark/creation/cfa_cor.c
===================================================================
--- src/benchmark/creation/cfa_cor.c	(revision 034165a8640dca94275d38852f1ba492194b3900)
+++ src/benchmark/creation/cfa_cor.c	(revision 034165a8640dca94275d38852f1ba492194b3900)
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <coroutine>
+
+#include "bench.h"
+
+coroutine MyCoroutine {};
+void main(MyCoroutine * this) {}
+
+int main(int argc, char* argv[]) {
+	BENCH(
+		for (size_t i = 0; i < NoOfTimes; i++) {
+			MyCoroutine m;
+		},
+		result
+	)
+
+	printf("%llu\n", result);
+}
Index: src/benchmark/creation/cfa_thrd.c
===================================================================
--- src/benchmark/creation/cfa_thrd.c	(revision 034165a8640dca94275d38852f1ba492194b3900)
+++ src/benchmark/creation/cfa_thrd.c	(revision 034165a8640dca94275d38852f1ba492194b3900)
@@ -0,0 +1,18 @@
+#include <stdio.h>
+#include <thread>
+
+#include "bench.h"
+
+thread MyThread {};
+void main(MyThread & this) {}
+
+int main(int argc, char* argv[]) {
+	BENCH(
+		for (size_t i = 0; i < NoOfTimes; i++) {
+			MyThread m;
+		},
+		result
+	)
+
+	printf("%llu\n", result);
+}
Index: src/benchmark/creation/pthreads.c
===================================================================
--- src/benchmark/creation/pthreads.c	(revision 034165a8640dca94275d38852f1ba492194b3900)
+++ src/benchmark/creation/pthreads.c	(revision 034165a8640dca94275d38852f1ba492194b3900)
@@ -0,0 +1,28 @@
+#include <pthread.h>
+#include <stdio.h>
+
+#include "bench.h"
+
+static void *foo(void *arg) {
+    return arg;
+}
+
+int main(int argc, char* argv[]) {
+	BENCH(
+		for (size_t i = 0; i < n; i++) {
+			pthread_t thread;
+			if (pthread_create(&thread, NULL, foo, NULL) < 0) {
+				perror( "failure" );
+				return 1;
+			}
+
+			if (pthread_join( thread, NULL) < 0) {
+				perror( "failure" );
+				return 1;
+			}
+		},
+		result
+	)
+
+	printf("%llu\n", result);
+}
Index: src/benchmark/creation/upp_cor.cc
===================================================================
--- src/benchmark/creation/upp_cor.cc	(revision 034165a8640dca94275d38852f1ba492194b3900)
+++ src/benchmark/creation/upp_cor.cc	(revision 034165a8640dca94275d38852f1ba492194b3900)
@@ -0,0 +1,18 @@
+#include <cstdio>
+
+#include "bench.h"
+
+_Coroutine MyCor {
+	void main() {}
+};
+
+int main(int argc, char* argv[]) {
+	BENCH(
+		for (size_t i = 0; i < n; i++) {
+			MyCor m;
+		},
+		result
+	)
+
+	printf("%llu\n", result);
+}
Index: src/benchmark/creation/upp_thrd.cc
===================================================================
--- src/benchmark/creation/upp_thrd.cc	(revision 034165a8640dca94275d38852f1ba492194b3900)
+++ src/benchmark/creation/upp_thrd.cc	(revision 034165a8640dca94275d38852f1ba492194b3900)
@@ -0,0 +1,18 @@
+#include <cstdio>
+
+#include "bench.h"
+
+_Task MyThread {
+	void main() {}
+};
+
+int main(int argc, char* argv[]) {
+	BENCH(
+		for (size_t i = 0; i < n; i++) {
+			MyThread m;
+		},
+		result
+	)
+
+	printf("%llu\n", result);
+}
