Package: cengal-memory-barriers
cengal_memory_barriersFast crossplatform memory barriers for Python.Memory barriers are utilized by the operating system to implement synchronization primitives, such as Mutexes.AdvantagesSupported OS: at least ["Linux", "Darwin", "Windows"]. Supported targets: at least ["Emscripten", "ARM", "x86_64", "x86", "i386", "i686", "AMD64"]. "Other" system or target should have "stdatomic.h" header to be supported.Installationpipinstallcengal_memory_barriersDocumentationImportfromcengal_memory_barriersimportfull_memory_barrier,mm_pauseSupported systemsOS \ CPU:x86 ("x86_64", "x86", "i386", "i686", "AMD64")ARMEmscriptenOther targetsLinux++++Darwin++++Windows+++Other systems with "stdatomic.h" header++++Available functions per systemFunc name: \ System:Linux/Darwin (x86)Linux/Darwin (ARM)Windows (x86)Windows (ARM)EmscriptenOther systems with "stdatomic.h" headerfull_memory_barrier()++++++memory_barrier()++++++sync_synchronize()++++++mm_pause()++++++mm_mfence()++++++mm_sfence()++++++mm_lfence()++++++mm_clflush(...)++iso_volatile_store16(...)+py_emscripten_atomic_fence()+clear_cache(...)++py_atomic_thread_fence(...)++++py_atomic_thread_fence__*()++++Backend calls - Main functionsSystem: \ Func name:full_memory_barrier()memory_barrier()sync_synchronize()Linux/Darwin (x86)_mm_mfence()_mm_mfence()__sync_synchronize()Linux/Darwin (ARM)__sync_synchronize()__sync_synchronize()__sync_synchronize()Windows (x86)MemoryBarrier()MemoryBarrier()MemoryBarrier()Windows (ARM)MemoryBarrier()MemoryBarrier()MemoryBarrier()Emscriptenemscripten_atomic_fence()__sync_synchronize()__sync_synchronize()Other systems with "stdatomic.h" headeratomic_thread_fence(MEMORY_ORDER_SEQ_CST)atomic_thread_fence(MEMORY_ORDER_SEQ_CST)atomic_thread_fence(MEMORY_ORDER_SEQ_CST)Backend calls - Secondary functionsSystem: \ Func name:mm_mfence()mm_sfence()mm_lfence()mm_pause()Linux/Darwin (x86)_mm_mfence()_mm_sfence()_mm_lfence()_mm_pause()Linux/Darwin (ARM)__sync_synchronize()__sync_synchronize()__sync_synchronize()passWindows (x86)_mm_mfence()_mm_sfence()_mm_lfence()_mm_pause()Windows (ARM)MemoryBarrier()MemoryBarrier()MemoryBarrier()passEmscripten__sync_synchronize()__sync_synchronize()__sync_synchronize()passOther systems with "stdatomic.h" headeratomic_thread_fence(MEMORY_ORDER_SEQ_CST)atomic_thread_fence(MEMORY_ORDER_SEQ_CST)atomic_thread_fence(MEMORY_ORDER_SEQ_CST)passBackend calls - Unique callsFunc name:Backend call:mm_clflush(p: int) -> None_mm_clflush(...)iso_volatile_store16(p: int, val: int) -> None__iso_volatile_store16(...)py_emscripten_atomic_fence() -> Noneemscripten_atomic_fence()clear_cache(beg: int, end: int) -> None__clear_cache(...)py_atomic_thread_fence(order: int) -> Noneatomic_thread_fence(...)py_atomic_thread_fence__memory_order_relaxed()atomic_thread_fence(MEMORY_ORDER_RELAXED)py_atomic_thread_fence__memory_order_consume()atomic_thread_fence(MEMORY_ORDER_CONSUME)py_atomic_thread_fence__memory_order_acquire()atomic_thread_fence(MEMORY_ORDER_ACQUIRE)py_atomic_thread_fence__memory_order_release()atomic_thread_fence(MEMORY_ORDER_RELEASE)py_atomic_thread_fence__memory_order_acq_rel()atomic_thread_fence(MEMORY_ORDER_ACQ_REL)py_atomic_thread_fence__memory_order_seq_cst()atomic_thread_fence(MEMORY_ORDER_SEQ_CST)Alternatives description:clear_cache(beg: int, end: int) -> None- "Linux", "Darwin" - An alternative tomm_clflush()in GCC and Clang compilersiso_volatile_store16(p: int, val: int) -> None- "Windows" - "ARM" - An alternative tomm_clflush()for ARM in Visual Studio compilerpy_emscripten_atomic_fence() -> None- "Emscripten" - Probably can be used as an alternative tomm_clflush()for EmscriptenBased on CengalRepresents part of Cengal library:https://pypi.org/project/cengal/https://github.com/FI-Mihej/CengalAn equivalent import:fromcengal.hardware.memory.barriersimportfull_memory_barrier,mm_pauseCengal library can be installed by:pipinstallcengalProjects using Cengalflet_async- wrapper which makesFletasync and brings booth Cengal.coroutines and asyncio to Flet (Flutter based UI)justpy_containers- wrapper aroundJustPyin order to bring more security and more production-needed features to JustPy (VueJS based UI)Bensbach- decompiler from Unreal Engine 3 bytecode to a Lisp-like script and compiler back to Unreal Engine 3 bytecode. Made for a game modding purposesRealistic-Damage-Model-mod-for-Long-War- Mod for both the original XCOM:EW and the mod Long War. Was made with a Bensbach, which was made with CengalSmartCATaloguer.com- TagDB based catalog of images (tags), music albums (genre tags) and apps (categories)LicenseCopyright © 2012-2023 ButenkoMS. All rights reserved.Licensed under the Apache License, Version 2.0.