mu-server: tweak server
Try to set a larger pipe size (on Linux); and only show the mu-prompt when talking to a tty.
This commit is contained in:
@ -117,6 +117,7 @@ Mu::read_line(bool& do_quit)
|
|||||||
#endif /*HAVE_READLINE*/
|
#endif /*HAVE_READLINE*/
|
||||||
|
|
||||||
std::string line;
|
std::string line;
|
||||||
|
if (is_a_tty) /* avoid uncookied noise for e.g. mu4e */
|
||||||
mu_print(";; mu> ");
|
mu_print(";; mu> ");
|
||||||
if (!std::getline(std::cin, line))
|
if (!std::getline(std::cin, line))
|
||||||
do_quit = true;
|
do_quit = true;
|
||||||
|
|||||||
@ -25,6 +25,7 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
#include "mu-cmd.hh"
|
#include "mu-cmd.hh"
|
||||||
#include "mu-server.hh"
|
#include "mu-server.hh"
|
||||||
@ -162,6 +163,15 @@ Mu::mu_cmd_server(const Mu::Options& opts) try {
|
|||||||
// --eval/--commands as well.
|
// --eval/--commands as well.
|
||||||
tty = ::isatty(::fileno(stdout));
|
tty = ::isatty(::fileno(stdout));
|
||||||
|
|
||||||
|
#ifdef F_SETPIPE_SZ
|
||||||
|
/* when talking to mu4e over a pipe, enlarge it (best-effort; Linux
|
||||||
|
* only). with the default 64k, we stall on writing big result batches
|
||||||
|
* while the client is busy rendering earlier results; with a bigger
|
||||||
|
* pipe, producing results and rendering them can overlap. */
|
||||||
|
if (!tty)
|
||||||
|
::fcntl(::fileno(stdout), F_SETPIPE_SZ, 1024 * 1024);
|
||||||
|
#endif /*F_SETPIPE_SZ*/
|
||||||
|
|
||||||
Server::Options sopts{opts.server.allow_temp_file, socket_path};
|
Server::Options sopts{opts.server.allow_temp_file, socket_path};
|
||||||
Server server{*store, sopts, output_stdout};
|
Server server{*store, sopts, output_stdout};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user