aboutsummaryrefslogtreecommitdiff
path: root/src/os/signal.c
Commit message (Collapse)AuthorAge
* Introduce nvim namespace: Move files.Eliseo Martínez2014-05-15
| | | | | | Move files from src/ to src/nvim/. - src/nvim/ becomes the new root dir for nvim executable sources. - src/libnvim/ is planned to become root dir of the neovim library.
* Prevent preserve_exit() from executing more than once.Dane Summers2014-05-06
| | | | https://github.com/neovim/neovim/issues/563
* Fix/add more files with to clint-files.txtThiago de Arruda2014-04-08
|
* Implement job controlThiago de Arruda2014-04-07
| | | | | | - Add a job control module for spawning and controlling co-processes - Add three vimscript functions for interfacing with the module - Use dedicated header files for typedefs/structs in event/job modules
* Use stdbool in os moduleHinidu2014-04-07
|
* Turn Event into a tagged unionFelipe Oliveira Carvalho2014-04-07
| | | | | If we ever need arbitrary data or more than very few bytes on `Events` we just have to add a `void *` field in the `data` union.
* Reimplement the event queue in event.c using klist.hFelipe Oliveira Carvalho2014-04-07
| | | | | | | | | | | | | | | | | | | | - Add a new macro to klist.h: kl_empty() The whole point of abstract data structures is to avoid reimplementing common actions. The emptiness test seems to be such an action. - Add a new function attribute to func_attr.h: FUNC_ATTR_UNUSED Some of the many functions created by the macros in klist.h may end up not being used. Unused functions cause compilation errors as we compile with -Werror. To mark those functions as possibly unused we can use the FUNC_ATTR_UNUSED now. - Pass `Event` by value `Event` is such a small struct that I don't think we should allocate heap space and pass it by reference. Let's use the stack and memory cache in our favor passing it by value.
* Use early return for rejecting_deadly in signal_cbThiago de Arruda2014-04-06
|
* Stop queueing events when signals are rejectedThiago de Arruda2014-04-05
| | | | | The only exception is SIGINT, which will set `got_int` directly. This will be necessary for the new implementation of `mch_call_shell`
* Extract memory.c from misc2.cJohn Schmidt2014-04-04
|
* Move signal handling to libuv event loopThiago de Arruda2014-04-01
This removes all signal handling code from os_unix.c to os/signal.c. Now signal handling is done like this: - Watchers for signals are registered with libuv default event loop - `event_poll` continuously calls `poll_uv_loop` to produce events until it receives user input, SIGINT or a timeout - Any signals received in `poll_uv_loop` will push events to a queue that is drained and processed by `event_poll` Signals aren't handled directly in the libuv callback to avoid recursion in the event loop(which isn't supported by libuv). The same principle will apply to other events in the future: Push to a queue from a libuv callback and drain it from `event_poll`