ipc =========================================================== .. module:: smisk.ipc .. versionadded:: 1.1.2 Inter-process communication Functions ------------------------------------------------- .. function:: shared_dict(persistent=False) -> dict Aquire the shared dictionary which can be concurrently manipulated by multiple processes. This is a convenience function which aquires a dict type which is shared between all processes running the same __main__ program. By default, this is simply (a imported reference to) the :func:`~smisk.ipc.bsddb.shared_dict()` function, returning a hashed DBDict stored in shared memory. There are other implementations available, which all provide the same interface, making future backend swap a simple drop-in operation. Example of use in Smisk applications:: from smisk.core import Application, main from smisk.ipc import shared_dict class App(Application): def application_will_start(self): self.sd = shared_dict() def service(self): # Do something useful with self.sd try: response = self.sd[request.url.path] except KeyError: # Build response... import os response = 'Hello! This was built by process #%d' % os.getpid() self.sd[request.url.path] = response self.response(response) main(App) :param persistent: If True, the dictionary will persist between application restarts (i.e. the contents of the dict is synced and keept on disk). Modules ------------------------------------------------- .. toctree:: :maxdepth: 1 smisk.ipc.bsddb smisk.ipc.memcached