This repository has been archived by the owner on Jul 17, 2022. It is now read-only.
[Feature complete] A simple daemonless system for broadcasting messages locally
License
maandree/bus
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
NAME bus - A simple daemonless system for broadcasting messages locally DESCRIPTION bus is a simple daemonless system for broadcasting messages locally. It is a lightweight alternative to a two-phase interprocess flexible barrier. bus uses a System V semaphore array and System V shared memory. Buses are named; the key of the semaphore array and the shared memory is stored in a regular file. The shared memory used by bus is always 2048 bytes. Additionally all messages should be encoded in UTF-8 and not contain any NULL characters, except they MUST always end with a zero byte. Furthermore messages should be prefixed with the process identifer of the process whence the message originated, followed by a space. If the process is ephemeral, 0 should be used instead of the process identifier. Communication over bus is synchronous. The broadcast call does not return until all listeners have received (and copied) the message. A malfunctioning program can lock the bus. This software package contains a C library and a command line utility. The package python-bus provides a Python 3 module. RATIONALE We need an interprocess communication system similar to message queues. But we need broadcasting rather than anycasting, so we have a fast, simple and daemonless system for announcing events to any processes that might be interested. SEE ALSO libshr(7), cmdipc(1), msgctl(3), semctl(3), shmctl(3), mqueue.h(0), semaphore.h(0), sem_overview(7), mmap(3), pipe(3), socketpair(3), socket(3), unix(7), cmsg(3), kill(3), eventfd(2), memfd_create(2), pthread_mutex_destroy(3), pthread_rwlock_destroy(3), futex(7), pthread_spin_destroy(3), pthread_cond_destroy(3), lockf(3), flock(2), fcntl(3), ioctl(3), mkfifo(3), rendezvous(2), 9p(2), libdoor(3), python-bus
About
[Feature complete] A simple daemonless system for broadcasting messages locally
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published