Cross-platform utils for IPC (inter-processing communication) synchronization in Python
Project description
ipc-utils
Cross-platform utils for IPC (inter-processing communication) in Python
You can create a named IPC tool like semaphore or mutex here. Onced you created here, you can use it everywhere in your computer. You can also just open a named IPC tool and use it if it has been created somewhere else before.
Installation
pip install ipc-sync
Usage
Semaphore
A named semaphore is offered.
from ipc_sync import Semaphore
sem = Semaphore("/test_sem", create = True, init_val = 1)
## or if it has been created somewhere else before
# sem = Semaphore("/test_sem", create = False)
with sem.guard():
... # critical section
## or if you don't want to use "with" syntax
# sem.wait()
# try:
# ... # critical section
# finally:
# sem.post()
sem.close()
sem.unlink() # if you want to delete the semaphore.
# Don't do this if you are using it somewhere else.
Once you created a named semaphore, you can use it in c/cpp like
#ifdef _WIN32
#define Semaphore HANDLE
Semaphore sem = OpenSemaphore(SEMAPHORE_ALL_ACCESS, FALSE, "/test_sem");
#else
#include <semaphore.h>
#define Semaphore sem_t
Semaphore sem = sem_open("/test_sem", 0);
#endif
Mutex
A named mutex is offered.
Note that as posix does not offer named mutex, we use named semaphore with init_val 1 instead.
from ipc_sync import Mutex
mtx = Mutex("/test_mtx", create = True)
## or if it has been created somewhere else before
# mtx = Mutex("/test_mtx", create = False)
with mtx.guard():
... # critical section
## or if you don't want to use "with" syntax
# mtx.acquire()
# try:
# ... # critical section
# finally:
# mtx.release()
mtx.close()
mtx.unlink() # if you want to delete the mutex.
# Don't do this if you are using it somewhere else.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ipc_sync-0.1.0.post1.tar.gz
.
File metadata
- Download URL: ipc_sync-0.1.0.post1.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.22.3 CPython/3.12.2 Windows/11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19f1aa23d6ab062a49534619bd30671fdb47c994726119b9407153a390ecf32a |
|
MD5 | a782815eb928c349ff3b624b21aaa42b |
|
BLAKE2b-256 | 64a6fe612125e3ea5a1ddf51db40b59e533fcc9c038f36bb762c632ea5564fd9 |
File details
Details for the file ipc_sync-0.1.0.post1-py3-none-any.whl
.
File metadata
- Download URL: ipc_sync-0.1.0.post1-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.22.3 CPython/3.12.2 Windows/11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | db2da55cac5462afd200acf3c9a30a0d85040b8cf80b8dc9815d19c33b7182c6 |
|
MD5 | 29870ebab76ff175c5acecf021a881fd |
|
BLAKE2b-256 | ec8158a1cf825b3aa794eb5f02a88557ed98631606ac5da699e8e87868bdc8c0 |