fa1b436fca
Without this fix, children of i3bar would inherit the file descriptor of the IPC connection to i3. Therefore, even if i3bar exits with SIGSEGV, the connection to i3 stays open. Because nobody actually reads any messages by i3, the buffer will fill up and i3 can’t deliver any more messages, and thus busy-loops at that point. fixes #995 |
||
---|---|---|
.. | ||
fake_configure_notify.c | ||
font.c | ||
get_colorpixel.c | ||
get_mod_mask.c | ||
get_process_filename.c | ||
get_visualtype.c | ||
ipc_connect.c | ||
ipc_recv_message.c | ||
ipc_send_message.c | ||
is_debug_build.c | ||
libi3.mk | ||
Makefile | ||
README | ||
root_atom_contents.c | ||
safewrappers.c | ||
string.c | ||
strndup.c | ||
ucs2_conversion.c |
Introduction ============ libi3 is an *INTERNAL* library which contains functions that i3 and related tools (i3-msg, i3-input, i3-nagbar, i3-config-wizard, i3bar) use. It is NOT to be used by other programs. Structure ========= Every function gets its own .c file, which in turn gets compiled into an .o object file. Afterwards, all .o files are archived into one static library (libi3.a). This library will be linked into all i3 binaries. The linker is able to eliminate unused .o files when linking, so only the functions which you actually use will be included in the corresponding binary.