Index: src/libcfa/concurrency/threads
===================================================================
--- src/libcfa/concurrency/threads	(revision 8def349b0537df4d0b760ecaa43ce8f6d6fe9e94)
+++ src/libcfa/concurrency/threads	(revision ad564827dc27892c270587c287aa0fac6124bfe4)
@@ -29,8 +29,8 @@
 trait is_thread(dtype T | sized(T)) {
       void main(T* this);
-      thread_h* get_thread(T* this);
+      thread* get_thread(T* this);
 };
 
-#define DECL_THREAD(X) static inline thread_h* get_thread(X* this) { return &this->t; } void main(X* this);
+#define DECL_THREAD(X) static inline thread* get_thread(X* this) { return &this->t; } void main(X* this);
 
 forall( dtype T | sized(T) | is_thread(T) )
@@ -39,14 +39,14 @@
 }
 
-static inline coroutine* get_coroutine(thread_h* this) {
+static inline coroutine* get_coroutine(thread* this) {
 	return &this->c;
 }
 
-thread_h * this_thread(void);
+thread * this_thread(void);
 
 //-----------------------------------------------------------------------------
 // Ctors and dtors
-void ?{}(thread_h* this);
-void ^?{}(thread_h* this);
+void ?{}(thread* this);
+void ^?{}(thread* this);
 
 //-----------------------------------------------------------------------------
@@ -54,16 +54,16 @@
 // Structure that actually start and stop threads
 forall( dtype T | sized(T) | is_thread(T) )
-struct thread {
+struct scoped {
 	T handle;
 };
 
 forall( dtype T | sized(T) | is_thread(T) | { void ?{}(T*); } )
-void ?{}( thread(T)* this );
+void ?{}( scoped(T)* this );
 
 forall( dtype T, ttype P | sized(T) | is_thread(T) | { void ?{}(T*, P); } )
-void ?{}( thread(T)* this, P params );
+void ?{}( scoped(T)* this, P params );
 
 forall( dtype T | sized(T) | is_thread(T) | { void ^?{}(T*); } )
-void ^?{}( thread(T)* this );
+void ^?{}( scoped(T)* this );
 
 void yield();
