Index: libcfa/src/bits/weakso_locks.cfa
===================================================================
--- libcfa/src/bits/weakso_locks.cfa	(revision 90fb672c6125815e30984194cc3d4f87dda0a50b)
+++ libcfa/src/bits/weakso_locks.cfa	(revision 85e49a60b06151843b3ec9e16256ca7799ac2a23)
@@ -15,7 +15,5 @@
 // Update Count     :
 //
-
 #include "bits/weakso_locks.hfa"
-
 #pragma GCC visibility push(default)
 
@@ -30,2 +28,6 @@
 void on_wakeup( blocking_lock &, size_t ) {}
 size_t wait_count( blocking_lock & ) { return 0; }
+bool register_select( blocking_lock & this, select_node & node ) { return false; }
+bool unregister_select( blocking_lock & this, select_node & node ) { return false; }
+bool on_selected( blocking_lock & this, select_node & node ) { return true; }
+
Index: libcfa/src/bits/weakso_locks.hfa
===================================================================
--- libcfa/src/bits/weakso_locks.hfa	(revision 90fb672c6125815e30984194cc3d4f87dda0a50b)
+++ libcfa/src/bits/weakso_locks.hfa	(revision 85e49a60b06151843b3ec9e16256ca7799ac2a23)
@@ -23,5 +23,5 @@
 #include "containers/list.hfa"
 
-struct thread$;
+struct select_node;
 
 //-----------------------------------------------------------------------------
@@ -32,5 +32,5 @@
 
 	// List of blocked threads
-	dlist( thread$ ) blocked_threads;
+	dlist( select_node ) blocked_threads;
 
 	// Count of current blocked threads
@@ -60,4 +60,7 @@
 void on_wakeup( blocking_lock & this, size_t ) OPTIONAL_THREAD;
 size_t wait_count( blocking_lock & this ) OPTIONAL_THREAD;
+bool register_select( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
+bool unregister_select( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
+bool on_selected( blocking_lock & this, select_node & node ) OPTIONAL_THREAD;
 
 //----------
@@ -75,2 +78,5 @@
 static inline void   on_wakeup( multiple_acquisition_lock & this, size_t v ) { on_wakeup ( (blocking_lock &)this, v ); }
 static inline void   on_notify( multiple_acquisition_lock & this, struct thread$ * t ){ on_notify( (blocking_lock &)this, t ); }
+static inline bool   register_select( multiple_acquisition_lock & this, select_node & node ) { return register_select( (blocking_lock &)this, node ); }
+static inline bool   unregister_select( multiple_acquisition_lock & this, select_node & node ) { return unregister_select( (blocking_lock &)this, node ); }
+static inline bool   on_selected( multiple_acquisition_lock & this, select_node & node ) { return on_selected( (blocking_lock &)this, node ); }
