Index: src/libcfa/concurrency/thread
===================================================================
--- src/libcfa/concurrency/thread	(revision b10affdcb702e2f50d20fa65715ce6473d2bebb4)
+++ src/libcfa/concurrency/thread	(revision a02842f67b4ea1b878a2763ebc4f7d48787fe29e)
@@ -23,7 +23,5 @@
 
 //-----------------------------------------------------------------------------
-// Coroutine trait
-// Anything that implements this trait can be resumed.
-// Anything that is resumed is a coroutine.
+// thread trait
 trait is_thread(dtype T) {
       void ^?{}(T& mutex this);
@@ -52,5 +50,5 @@
 }
 
-//extern thread_local thread_desc * volatile this_thread;
+extern struct cluster * mainCluster;
 
 forall( dtype T | is_thread(T) )
@@ -59,6 +57,16 @@
 //-----------------------------------------------------------------------------
 // Ctors and dtors
-void ?{}(thread_desc& this);
-void ^?{}(thread_desc& this);
+void ?{}(thread_desc & this, const char * const name, struct cluster & cl, void * storage, size_t storageSize );
+void ^?{}(thread_desc & this);
+
+static inline void ?{}(thread_desc & this)                                                                  { this{ "Anonymous Thread", *mainCluster, NULL, 0 }; }
+static inline void ?{}(thread_desc & this, size_t stackSize )                                               { this{ "Anonymous Thread", *mainCluster, NULL, stackSize }; }
+static inline void ?{}(thread_desc & this, void * storage, size_t storageSize )                             { this{ "Anonymous Thread", *mainCluster, storage, storageSize }; }
+static inline void ?{}(thread_desc & this, struct cluster & cl )                                            { this{ "Anonymous Thread", cl, NULL, 0 }; }
+static inline void ?{}(thread_desc & this, struct cluster & cl, size_t stackSize )                          { this{ "Anonymous Thread", cl, 0, stackSize }; }
+static inline void ?{}(thread_desc & this, struct cluster & cl, void * storage, size_t storageSize )        { this{ "Anonymous Thread", cl, storage, storageSize }; }
+static inline void ?{}(thread_desc & this, const char * const name)                                         { this{ name, *mainCluster, NULL, 0 }; }
+static inline void ?{}(thread_desc & this, const char * const name, struct cluster & cl )                   { this{ name, cl, NULL, 0 }; }
+static inline void ?{}(thread_desc & this, const char * const name, struct cluster & cl, size_t stackSize ) { this{ name, cl, NULL, stackSize }; }
 
 //-----------------------------------------------------------------------------
