Index: tests/unified_locking/.expect/locks.txt
===================================================================
--- tests/unified_locking/.expect/locks.txt	(revision 976bc68bf62844647c302f52740892262d6884c4)
+++ tests/unified_locking/.expect/locks.txt	(revision 22b7579d6fadb3c0f02cdb4dbfbc418a2df14457)
@@ -11,10 +11,14 @@
 Start Test 6: owner lock and condition variable 3 wait/notify all
 Done Test 6
-Start Test 7: multi acquisiton lock and condition variable multiple acquire and wait/notify
+Start Test 7: fast lock and condition variable single wait/notify
 Done Test 7
-Start Test 8: owner lock and condition variable multiple acquire and wait/notify
+Start Test 8: fast lock and condition variable 3 wait/notify all
 Done Test 8
-Start Test 9: no lock condition variable wait/notify
+Start Test 9: multi acquisiton lock and condition variable multiple acquire and wait/notify
 Done Test 9
-Start Test 10: locked condition variable wait/notify with front()
+Start Test 10: owner lock and condition variable multiple acquire and wait/notify
 Done Test 10
+Start Test 11: no lock condition variable wait/notify
+Done Test 11
+Start Test 12: locked condition variable wait/notify with front()
+Done Test 12
Index: tests/unified_locking/locks.cfa
===================================================================
--- tests/unified_locking/locks.cfa	(revision 976bc68bf62844647c302f52740892262d6884c4)
+++ tests/unified_locking/locks.cfa	(revision 22b7579d6fadb3c0f02cdb4dbfbc418a2df14457)
@@ -15,4 +15,7 @@
 condition_variable( owner_lock ) c_o;
 
+fast_lock f;
+condition_variable( fast_lock ) c_f;
+
 thread T_C_M_WS1 {};
 
@@ -68,4 +71,32 @@
 		}
 		unlock(s);
+	}
+}
+
+thread T_C_F_WS1 {};
+
+void main( T_C_F_WS1 & this ) {
+	for (unsigned int i = 0; i < num_times; i++) {
+		lock(f);
+		if(empty(c_f) && i != num_times - 1) {
+			wait(c_f,f);
+		}else{
+			notify_one(c_f);
+		}
+		unlock(f);
+	}
+}
+
+thread T_C_F_WB1 {};
+
+void main( T_C_F_WB1 & this ) {
+	for (unsigned int i = 0; i < num_times; i++) {
+		lock(f);
+		if(counter(c_f) == 3 || i == num_times - 1) {
+			notify_all(c_f);
+		}else{
+			wait(c_f,f);
+		}
+		unlock(f);
 	}
 }
@@ -255,28 +286,40 @@
 	printf("Done Test 6\n");
 
-	printf("Start Test 7: multi acquisiton lock and condition variable multiple acquire and wait/notify\n");
+	printf("Start Test 7: fast lock and condition variable single wait/notify\n");
+	{
+		T_C_F_WS1 t1[2];
+	}
+	printf("Done Test 7\n");
+
+	printf("Start Test 8: fast lock and condition variable 3 wait/notify all\n");
+	{
+		T_C_F_WB1 t1[4];
+	}
+	printf("Done Test 8\n");
+
+	printf("Start Test 9: multi acquisiton lock and condition variable multiple acquire and wait/notify\n");
 	{
 		T_C_M_WS2 t1[2];
 	}
-	printf("Done Test 7\n");
-
-	printf("Start Test 8: owner lock and condition variable multiple acquire and wait/notify\n");
+	printf("Done Test 9\n");
+
+	printf("Start Test 10: owner lock and condition variable multiple acquire and wait/notify\n");
 	{
 		T_C_O_WS2 t1[2];
 	}
-	printf("Done Test 8\n");
-
-	printf("Start Test 9: no lock condition variable wait/notify\n");
+	printf("Done Test 10\n");
+
+	printf("Start Test 11: no lock condition variable wait/notify\n");
 	{
 		T_C_NLW t1;
 		T_C_NLS t2;
 	}
-	printf("Done Test 9\n");
-
-	printf("Start Test 10: locked condition variable wait/notify with front()\n");
+	printf("Done Test 11\n");
+
+	printf("Start Test 12: locked condition variable wait/notify with front()\n");
 	{
 		T_C_S_WNF t1[2];
 	}
-	printf("Done Test 10\n");
+	printf("Done Test 12\n");
 
 	// removed to limit test duration. Full test is in long run tests
