forked from Github/emacs
A common complaint about the module API is that modules can't communicate asynchronously with Emacs. While it isn't possible to call arbitrary Emacs functions asynchronously, writing to a pipe should always be fine and is a pretty low-hanging fruit. This patch implements a function that adapts an existing pipe process. That way, users can use familiar tools like process filters or 'accept-process-output'. * src/module-env-28.h: Add 'open_channel' module function. * src/emacs-module.c (module_open_channel): Provide definition for 'open_channel'. (initialize_environment): Use it. * src/process.c (open_channel_for_module): New helper function. (syms_of_process): Define necessary symbol. * test/src/emacs-module-tests.el (module/async-pipe): New unit test. * test/data/emacs-module/mod-test.c (signal_system_error): New helper function. (signal_errno): Use it. (write_to_pipe): New function running in the background. (Fmod_test_async_pipe): New test module function. (emacs_module_init): Export it. * doc/lispref/internals.texi (Module Misc): Document new module function. * doc/lispref/processes.texi (Asynchronous Processes): New anchor for pipe processes. * etc/NEWS: Document 'open_channel' function. |
||
|---|---|---|
| .. | ||
| regex-resources | ||
| alloc-tests.el | ||
| buffer-tests.el | ||
| callint-tests.el | ||
| callproc-tests.el | ||
| casefiddle-tests.el | ||
| charset-tests.el | ||
| chartab-tests.el | ||
| cmds-tests.el | ||
| coding-tests.el | ||
| data-tests.el | ||
| decompress-tests.el | ||
| doc-tests.el | ||
| editfns-tests.el | ||
| emacs-module-tests.el | ||
| eval-tests.el | ||
| fileio-tests.el | ||
| floatfns-tests.el | ||
| fns-tests.el | ||
| font-tests.el | ||
| inotify-tests.el | ||
| json-tests.el | ||
| keyboard-tests.el | ||
| keymap-tests.el | ||
| lcms-tests.el | ||
| lread-tests.el | ||
| marker-tests.el | ||
| minibuf-tests.el | ||
| print-tests.el | ||
| process-tests.el | ||
| regex-emacs-tests.el | ||
| syntax-tests.el | ||
| textprop-tests.el | ||
| thread-tests.el | ||
| timefns-tests.el | ||
| undo-tests.el | ||
| xml-tests.el | ||