21 Repos
Mechanisms such as mutexes and semaphores used to coordinate access to shared resources between processes.
Distinct from Resource Loading Synchronization: Candidates focus on session sharing or UI resource loading rather than general process synchronization locks.
Explore 21 awesome GitHub repositories matching operating systems & systems programming · Process Synchronization Locks. Refine with filters or upvote what's useful.
Boost is a collection of portable, high-performance source libraries that extend the C++ standard library. It provides a wide range of reusable components, data structures, and algorithms designed to add capabilities to the base language across different platforms. The project is distinguished by its extensive focus on compile-time template metaprogramming and generic programming. It implements advanced architectural patterns such as policy-based design, concept-based type validation, and the use of SFINAE for conditional template resolution to minimize runtime overhead. The library covers a
Coordinates shared resource access using mutexes, semaphores, and condition variables between processes.
This project is an Android RPA framework designed for automating user interfaces and system tasks on rooted Android devices using Python and ADB. It provides a suite of tools for rooted device management, allowing for programmatic control of system settings, application lifecycles, and shell command execution via a remote API. The framework distinguishes itself through a combination of dynamic instrumentation and AI integration. It can inject scripts into running processes to hook Java interfaces and modifies application behavior in real time. Additionally, it supports large language model in
Restricts API access to a single device instance to prevent concurrent process interference.
This project is a Python data science curriculum and programming tutorial collection. It provides a structured set of educational notebooks and scripts designed to teach data analysis, machine learning, and deep learning. The repository serves as a learning path for building and tuning predictive models, including regression, decision trees, and neural networks. It includes a data visualization guide for creating financial time-series plots and a multiprocessing reference for implementing parallel task execution and shared memory synchronization. The curriculum covers broader capability area
Implements synchronization locks to prevent data corruption when multiple processes access shared memory.
Hazelcast is a distributed data platform that combines an in-memory data grid with a stream processing engine to support real-time analytics and event-driven applications. It functions as a partitioned, distributed key-value store that replicates data across cluster nodes to provide low-latency access and high availability. The platform also serves as a distributed SQL query engine, allowing users to execute standard SQL statements against both in-memory datasets and external data sources. What distinguishes Hazelcast is its use of a distributed consensus subsystem to maintain strongly consis
Improve performance for non-mutating operations by executing logic on entries without acquiring locks or checking lock status.
Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid states and the logic for moving between them, including implementations for asynchronous state machines and thread-safe state managers. The library supports hierarchical state machines that allow states to be nested to organize complex subtasks and logical contexts. It includes tools for generating visual diagrams of states and transitions to document machine logic. The project covers state management primitives such as lifecycle callbacks, conditional transition guarding, an
Uses reentrant locks to prevent race conditions during simultaneous state transition triggers.
Masuit.Tools is a comprehensive static utility library for .NET and ASP.NET Core development. It provides a broad collection of reusable helper methods and infrastructure components that cover common programming tasks without requiring dependency injection or instance management. The library is organized as flat utility classes, making its functionality directly accessible from anywhere in a project. The toolkit distinguishes itself through a wide range of integrated capabilities that go beyond typical utility libraries. It includes a multithreaded range-request file downloader with pause and
Provides a utility to run database queries under a read-uncommitted transaction to avoid blocking.
Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data structures, synchronization primitives, and asynchronous execution patterns. It implements core concurrency abstractions including an actor model framework where isolated actors communicate through asynchronous message passing, a future and promise system for composing non-blocking operations, and thread pool executors that manage reusable worker threads for concurrent task execution. The library distinguishes itself through a broad set of coordination mechanisms that go beyond basic th
Implements non-blocking lock acquisition that returns immediately with a boolean instead of blocking the caller.
InterviewGuide is a comprehensive technical interview preparation platform that covers the full spectrum of software engineering recruitment, from foundational computer science concepts through to offer negotiation. It provides structured learning paths across algorithms, operating systems, databases, networking, and programming languages, with a particular emphasis on C++ and Go. The platform aggregates real interview experiences and company-specific questions from major tech employers, offering candidates a searchable database of past written exam problems and detailed accounts of actual int
Coordinates access to shared resources using semaphores, mutexes, condition variables, and monitors to prevent race conditions.
This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation
Explains trylock-based deadlock avoidance with non-blocking lock attempts and rollback.
Dieses Projekt ist ein PHP-Kompatibilitäts-Polyfill, das entwickelt wurde, um Kernfunktionen und Konstanten von PHP 7.2 auf ältere Versionen der Sprache zurückzuportieren. Es dient als Erweiterung der PHP-Standardbibliothek und als Version-Backport und bietet eine Kompatibilitätsschicht, die Lücken im PHP-Kern füllt, um ein konsistentes Verhalten über verschiedene Umgebungen hinweg sicherzustellen. Die Bibliothek ermöglicht die Portabilität von Code über Versionen hinweg durch die Implementierung fehlender Standardbibliotheksfunktionen, wodurch neuere Sprachfeatures auf älteren PHP-Umgebungen ausgeführt werden können. Dies stellt sicher, dass Anwendungen eine konsistente Schnittstelle beibehalten und mit aktuellen Bibliotheken kompatibel bleiben, selbst wenn sie auf veralteten Versionen ausgeführt werden.
Sets a time-to-live for locks to ensure automatic release if a process crashes.
Diese Java-Concurrency-Bibliothek bietet eine Suite von Werkzeugen zur Verwaltung von Multi-Threaded-Ausführung, Synchronisation und Speicherkonsistenz. Sie dient als umfassendes Framework zur Implementierung gleichzeitiger Ausführung durch lock-freie Atomics, thread-sichere Sammlungen, Task-Koordinations-Primitive und Worker-Pools. Das Projekt enthält ein dediziertes Thread-Synchronisations-Toolkit mit Latches, Barrieren und Semaphoren, um das Timing und die Reihenfolge gleichzeitiger Aufgaben zu koordinieren. Es bietet zudem eine Suite an Concurrent-Collections wie Maps, Queues und Listen, die Datenaustausch ohne manuelle Sperren ermöglichen, sowie ein Framework für atomare Operationen für lock-freie Updates von Basistypen und Referenzen. Die Bibliothek deckt breite Funktionsbereiche ab, einschließlich Thread-Pool-Management zur Optimierung der Ressourcennutzung, Speichermodell-Analyse zur Sicherstellung der Datensichtbarkeit und verschiedene Sperrverwaltungsmechanismen zur Vermeidung von Race Conditions. Diese Werkzeuge unterstützen gemeinsam die Entwicklung von Multi-Threaded-Anwendungen, die konsistente Zustandsübergänge über gemeinsam genutzten Speicher hinweg aufrechterhalten.
Provides reentrant locks that allow threads to acquire the same lock multiple times without deadlocking.
Dieses Projekt ist ein instruktives Repository und eine Lernressource, die eine umfassende Sammlung von Studiennotizen, Programmierleitfäden und ausführbaren Codebeispielen bietet. Es dient als Leitfaden für Java SE- und Java-Webentwicklung und enthält eine Bibliothek mit Code-Samples, die gängige Algorithmen und technische Implementierungen demonstrieren. Das Repository konzentriert sich auf die Analyse des Sprachkerns und der Laufzeitumgebung, mit detaillierten Tutorials zu Multithreading und Concurrency. Es bietet praktische Implementierungen von Softwarearchitekturen und Entwurfsmustern, wie etwa Singleton- oder Strategie-Pattern, sowie Einblicke in die Java Virtual Machine und Bytecode. Das Projekt deckt ein breites Spektrum an Fähigkeiten ab, darunter Sprachgrundlagen wie Generics und Annotations, Grundlagen der Webentwicklung wie HTTP-Request-Handling und Session-Management sowie Concurrency-Primitive für Thread-Lebenszyklen und Ressourcen-Synchronisation. Zudem sind Hilfsprogramme für Sicherheit, Datenverarbeitung und dynamische Seitengenerierung enthalten.
Orchestrates various locking strategies, including reentrant and read-write locks, to control shared resource access.
ZIO is a functional effect system for the JVM that models asynchronous and concurrent programs as pure, composable values with typed error handling and dependency injection. Its core identity is built on fiber-based concurrency, where lightweight, non-blocking fibers execute millions of concurrent tasks with structured lifecycle management, and a dual-channel error model that separates expected business failures from unexpected system defects at compile time. The system provides effect-typed dependency injection through a layer-based dependency graph, pull-based reactive stream processing with
Acquires reentrant locks that the same fiber can re-enter multiple times.
This is a PHP library providing standardized interfaces for caching data through the PSR-6 and PSR-16 specifications. It functions as a cache pool manager and distributed cache adapter, allowing applications to organize key-value pairs into logical repositories and namespaces. The project includes a dedicated cache stampede prevention tool that protects systems from CPU spikes during value expiration. This is achieved through locking mechanisms for concurrent requests and probabilistic early expiration. The library supports object serialization with optional encryption and compression to tra
Prevents multiple processes from recomputing the same expired value by locking concurrent requests during the cache miss period.
ShedLock ist ein Manager für verteilte Locks, der darauf ausgelegt ist, zu verhindern, dass geplante Tasks gleichzeitig über mehrere Nodes in einem verteilten System hinweg ausgeführt werden. Er fungiert als Task-Koordinator, der eine einmalige Ausführung zeitgesteuerter Jobs sicherstellt, indem er Lock-Lebensdauern verwaltet und externe Lock-Anbieter nutzt. Das System verwendet datenbankgestützte Anbieter, um Task-Ausführungszustände in externen Datenbanken zu speichern und Locks über aktive Cluster-Nodes hinweg zu synchronisieren. Es beinhaltet einen Clock-Drift-toleranten Synchronisierer, der Zeitdiskrepanzen zwischen verteilten Nodes durch die Verwendung geteilter Zeitstempel und flexibler Lock-Lebensdauern handhabt. Das Projekt bietet Mechanismen für den gegenseitigen Ausschluss geteilter Ressourcen und die Task-Koordination über mehrere Nodes hinweg. Es unterstützt den automatischen Lock-Ablauf, um Deadlocks bei Node-Abstürzen zu verhindern, und hält minimale Lock-Haltezeiten ein, um sicherzustellen, dass Tasks abgeschlossen werden, bevor ein Lock freigegeben wird. Die Implementierung verwendet eine anbieteragnostische Abstraktion, um die Locking-Logik von verschiedenen Datenbank-Backends zu entkoppeln.
Automatically releases locks after a predefined maximum time to prevent permanent deadlocks during node crashes.
Orioledb is a cloud-native storage engine for PostgreSQL designed to replace the default storage layer to improve vertical scalability and performance on modern hardware. It functions as an index-organized table store, organizing table rows directly within the primary index to accelerate data retrieval. The engine utilizes an undo log storage system to manage data versioning, which eliminates the need for manual vacuuming and prevents table bloat. It further reduces the disk footprint through block-level and page-level data compression. The project provides capabilities for advanced index ma
Enables high-throughput concurrent reads by linking in-memory pages directly to storage to bypass buffer mapping.
Redsync ist ein verteilter Lock-Manager und eine Go-Redis-Client-Erweiterung, die für den exklusiven Zugriff auf gemeinsam genutzte Ressourcen entwickelt wurde. Sie implementiert gegenseitigen Ausschluss (Mutual Exclusion) über mehrere Prozesse hinweg, indem sie ein Redis-Backend zur Koordinierung der Synchronisation nutzt und Race Conditions in verteilten Umgebungen verhindert. Die Bibliothek stellt die Gültigkeit von Locks durch einen quorum-basierten Konsens sicher, der erfolgreiche Schreibvorgänge auf einer Mehrheit unabhängiger Redis-Knoten erfordert. Sie verwendet Lua-skriptbasierte atomare Operationen für das Sperren und Freigeben, während sie wertbasierte Eigentumsvalidierung und Time-to-Live-Ablaufzeiten einsetzt, um Deadlocks zu vermeiden. Das Projekt bietet Funktionen für verteilte Koordinierung und Anwendungssynchronisation und nutzt clientseitiges Retry-Polling, um Timeouts bei der Ressourcenbeschaffung zu verwalten.
Prevents deadlocks by associating a time-to-live value with every lock to ensure automatic expiration if the owner fails.
BLEUnlock ist ein macOS-Automatisierungstool und ein auf Nähe basierender System-Controller, der die Reichweite vertrauenswürdiger Bluetooth-Low-Energy-Geräte überwacht, um die Bildschirmsicherheit und hardwarebasiertes Entsperren zu automatisieren. Es fungiert als Hintergrunddienstprogramm, das Geräte in der Nähe anhand ihrer eindeutigen Kennungen und Signalstärke identifiziert und filtert, um Systemaktionen auszulösen. Das System verwaltet automatisch den Bildschirmsperrzustand, weckt das Display und entsperrt den Computer, wenn ein gekoppeltes Gerät in einen definierten Signalbereich eintritt, oder sperrt den Bildschirm und startet den Bildschirmschoner, wenn sich das Gerät aus der Reichweite entfernt. Über die Sicherheit hinaus bietet das Tool eine nähebasierte Systemverwaltung, einschließlich der Möglichkeit, die Medienwiedergabe anzuhalten oder fortzusetzen und benutzerdefinierte Shell-Skripte als Reaktion auf Sperr- und Entsperrereignisse auszuführen.
Changes the system lock state automatically based on the presence of paired Bluetooth Low Energy devices.
HyperDbg is a hardware-assisted kernel-mode debugging platform that leverages virtualization to monitor and control system execution. By utilizing hypervisor-level primitives, it enables deep system analysis and instrumentation without relying on standard operating system debugging interfaces. The framework provides a comprehensive environment for inspecting both kernel and user-mode processes, allowing for granular control over execution flow and system state. The project distinguishes itself through a transparent debugging layer designed to remain invisible to the target environment. It emp
Releases held spinlocks to allow other processes or threads to access protected resources during debugging.
Whatsie is a web application desktop wrapper designed to turn web interfaces, specifically messaging services, into standalone desktop applications. It provides a dedicated window environment with a custom icon and system tray integration. The project includes security and privacy layers such as password-protected session locking with automatic timeouts and the ability to purge persistent application data and web caches. It also features native hardware permission management for controlling camera and microphone access. The application supports native system notifications, file download hand
Prevents multiple application copies using a lock file and inter-process communication.