Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 4e7446674b97f58f9d6855034263b348ed3350e1)
+++ libcfa/src/concurrency/kernel.cfa	(revision 6e33a2decadaea8f234b8538b1ff71447e2234ea)
@@ -987,5 +987,5 @@
 void ^?{}(semaphore & this) {}
 
-void P(semaphore & this) with( this ){
+bool P(semaphore & this) with( this ){
 	lock( lock __cfaabi_dbg_ctx2 );
 	count -= 1;
@@ -997,7 +997,9 @@
 		unlock( lock );
 		park( __cfaabi_dbg_ctx );
+		return true;
 	}
 	else {
 	    unlock( lock );
+	    return false;
 	}
 }
Index: libcfa/src/concurrency/kernel.hfa
===================================================================
--- libcfa/src/concurrency/kernel.hfa	(revision 4e7446674b97f58f9d6855034263b348ed3350e1)
+++ libcfa/src/concurrency/kernel.hfa	(revision 6e33a2decadaea8f234b8538b1ff71447e2234ea)
@@ -38,5 +38,5 @@
 void  ?{}(semaphore & this, int count = 1);
 void ^?{}(semaphore & this);
-void   P (semaphore & this);
+bool   P (semaphore & this);
 bool   V (semaphore & this);
 bool   V (semaphore & this, unsigned count);
