Index: src/libcfa/concurrency/thread
===================================================================
--- src/libcfa/concurrency/thread	(revision 17af7d185d75583696ef5e090868e66c99131d40)
+++ src/libcfa/concurrency/thread	(revision 87d13cd6f0b6eede5621fb0f5bd5b06911c656fe)
@@ -22,4 +22,5 @@
 
 #include "coroutine"
+#include "monitor"
 
 //-----------------------------------------------------------------------------
@@ -28,5 +29,5 @@
 // Anything that is resumed is a coroutine.
 trait is_thread(dtype T) {
-      void ^?{}(T* this);
+      void ^?{}(T* mutex this);
       void main(T* this);
       thread_desc* get_thread(T* this);
@@ -40,6 +41,15 @@
 }
 
-static inline coroutine_desc* get_coroutine(thread_desc* this) {
+forall( dtype T | is_thread(T) )
+static inline monitor_desc* get_monitor(T * this) {
+	return &get_thread(this)->mon;
+}
+
+static inline coroutine_desc* get_coroutine(thread_desc * this) {
 	return &this->cor;
+}
+
+static inline monitor_desc* get_monitor(thread_desc * this) {
+	return &this->mon;
 }
 
