$WW,1$One difficulty with Multi-Core is cache. The cores on my machine have separate caches which means updating an address from one core is not recognized by the other core until it is written to memory and reloaded into the other core's cache. LoseThos offers the ability to allocate either uncached or "write-through" memory with $LK,"AllocUncachedMemBlks","MN:AllocUncachedMemBlks"$() or $LK,"AllocWriteThroughMemBlks","MN:AllocWriteThroughMemBlks"$(). You can set-up a heap after allocating a chunk by passing a pointer and size to $LK,"InitHeapCtrl","MN:InitHeapCtrl"$(). Then, use $LK,"MAllocHC","MN:MAllocHC"$() and $LK,"FreeHC","MN:FreeHC"$(). See $LK,"InitHeapCtrl","PF:::/LT/OSMain/MultiProc.CPZ,InitHeapCtrl:2"$. $LK,"mp_heap","MN:mp_heap"$ is a 2Meg heap of uncached memory that you can use unless you run-out of room. Each core beside the first has a "cain task" which has it's own 2 Meg cached heap accessed through conventional $LK,"MAlloc","MN:MAlloc"$() and $LK,"Free","MN:Free"$(). The cain task is the father of all tasks on that core. See $LK,"InitHeapCtrl","PF:::/LT/OSMain/MultiProc.CPZ,InitHeapCtrl:1"$. You give a job to a cain task with $LK,"MPQueueJob","MN:MPQueueJob"$(). See $LK,"::/LT/Demo/MultiCore.CPZ","FI:::/LT/Demo/MultiCore.CPZ"$