Index: libcfa/src/concurrency/monitor.hfa
===================================================================
--- libcfa/src/concurrency/monitor.hfa	(revision 7dd98b68d7ec01e98367d0c51e04e35ebd35f9f4)
+++ libcfa/src/concurrency/monitor.hfa	(revision 36a05d7487d931cd7a2061e8d8591e698f2c4f83)
@@ -65,4 +65,15 @@
 	free( th );
 }
+
+static inline forall( T & | sized(T) | { void ^?{}( T & mutex ); } )
+void adelete( T arr[] ) {
+	if ( arr ) {										// ignore null
+		size_t dim = malloc_size( arr ) / sizeof( T );
+		for ( int i = dim - 1; i >= 0; i -= 1 ) {		// reverse allocation order, must be unsigned
+			^(arr[i]){};								// run destructor
+		} // for
+		free( arr );
+	} // if
+} // adelete
 
 //-----------------------------------------------------------------------------
