lilgit icon indicating copy to clipboard operation
lilgit copied to clipboard

Better daemonization/service model

Open abathur opened this issue 4 years ago • 0 comments

The current MVP model uses bash coproc for bi-directional I/O. Convenient for dev, but has a few issues:

  • the daemon is actually attached to the shell...
    • it may show up in your window/tab title
    • terminal may block on exit because lilgitd is running (workaround at least in macOS Terminal.app: Terminal > Preferences > Shell > add lilgitd to the ask-before-closing exception list)
    • ~common signals for the shell may kill it~ (tentatively addressed with dc9f749fb808bfb254098a247a7afc2548425f57)
  • there's technically a process per terminal; it's pretty small (a few mb), but it is a little wasteful if you run many terminals (as I do)

An obvious answer is "do what gitstatus does", and I assume named pipes/fifos are part of the solution, but this is a bit of a blind spot for me. I've done one-way client communication to a service over a fifo, but I'm not sure what the simplest way to design around multi-client is.

abathur avatar Dec 26 '20 18:12 abathur