Index: libcfa/src/heap.cfa
===================================================================
--- libcfa/src/heap.cfa	(revision cfbfd311b636079f7c0c3fe2819cefa50742ccfc)
+++ libcfa/src/heap.cfa	(revision 9df6059d6c26b30fc90902b11f7454c84c89f725)
@@ -10,6 +10,6 @@
 // Created On       : Tue Dec 19 21:58:35 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu May 15 16:47:35 2025
-// Update Count     : 1647
+// Last Modified On : Sat Jul  4 16:17:06 2026
+// Update Count     : 1658
 //
 
@@ -25,6 +25,5 @@
 
 #include "heap.hfa"
-#include "bits/align.hfa"								// libAlign
-#include "bits/defs.hfa"								// likely, unlikely
+#include "bits/align.hfa"								// libAlign, Pause, likely, unlikely
 #include "concurrency/kernel/fwd.hfa"					// disable_interrupts, enable_interrupts
 #include "startup.hfa"									// STARTUP_PRIORITY_MEMORY
@@ -129,14 +128,4 @@
 } // Bsearchl
 
-
-// pause to prevent excess processor bus usage
-#if defined( __i386 ) || defined( __x86_64 )
-	#define Pause() __asm__ __volatile__ ( "pause" : : : )
-#elif defined(__ARM_ARCH)
-	#define Pause() __asm__ __volatile__ ( "YIELD" : : : )
-#else
-	#error unsupported architecture
-#endif
-
 typedef volatile uintptr_t SpinLock_t;
 
@@ -146,5 +135,5 @@
 
 	for ( unsigned int i = 1;; i += 1 ) {
-	  if ( slock == 0 && __atomic_test_and_set( &slock, __ATOMIC_ACQUIRE ) == 0 ) break; // Fence
+	  if ( slock == 0 && AtomicTas( slock ) == 0 ) break; // Fence
 		for ( volatile unsigned int s = 0; s < spin; s += 1 ) Pause(); // exponential spin
 		spin += spin;									// powers of 2
@@ -155,5 +144,5 @@
 
 static inline __attribute__((always_inline)) void unlock( volatile SpinLock_t & slock ) {
-	__atomic_clear( &slock, __ATOMIC_RELEASE );			// Fence
+	AtomicClr( slock );									// Fence
 } // spin_unlock
 
@@ -1003,5 +992,5 @@
 				unlock( freeHead->returnLock );
 				#else
-				block = __atomic_exchange_n( &freeHead->returnList, 0p, __ATOMIC_SEQ_CST );
+				block = AtomicFas( freeHead->returnList, 0p );
 				#endif // RETURNSPIN
 
@@ -1168,6 +1157,5 @@
 			header->kind.real.next = freeHead->returnList; // link new node to top node
 			// CAS resets header->kind.real.next = freeHead->returnList on failure
-			while ( ! __atomic_compare_exchange_n( &freeHead->returnList, &header->kind.real.next, (Heap.Storage *)header,
-												   false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST ) );
+			while ( ! AtomicCasv( freeHead->returnList, header->kind.real.next, (Heap.Storage *)header );
 
 			#ifdef __STATISTICS__
