[Complete] A simple daemonless system for broadcasting messages locally
- C 67.1%
- Roff 28.4%
- Makefile 4.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| doc | ||
| .gitignore | ||
| arg.h | ||
| bus-broadcast.1 | ||
| bus-chgrp.1 | ||
| bus-chmod.1 | ||
| bus-chown.1 | ||
| bus-create.1 | ||
| bus-listen.1 | ||
| bus-remove.1 | ||
| bus-wait.1 | ||
| bus.1 | ||
| bus.5 | ||
| bus.c | ||
| bus.h | ||
| bus.texinfo | ||
| bus_chmod.3 | ||
| bus_chown.3 | ||
| bus_close.3 | ||
| bus_create.3 | ||
| bus_open.3 | ||
| bus_poll.3 | ||
| bus_read.3 | ||
| bus_unlink.3 | ||
| bus_write.3 | ||
| config.mk | ||
| fdl.texinfo | ||
| libbus.7 | ||
| libbus.c | ||
| LICENSE | ||
| Makefile | ||
| README | ||
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