startup: always wait for UI with --embed, unless --headless also is supplied

This commit is contained in:
Björn Linse
2018-09-20 19:19:38 +02:00
parent 7f990741f7
commit 4da5cb38d3
13 changed files with 68 additions and 79 deletions

View File

@@ -58,6 +58,21 @@ void remote_ui_disconnect(uint64_t channel_id)
xfree(ui);
}
/// Wait until ui has connected on stdio channel.
void remote_ui_wait_for_attach(void)
FUNC_API_NOEXPORT
{
Channel *channel = find_channel(CHAN_STDIO);
if (!channel) {
// this function should only be called in --embed mode, stdio channel
// can be assumed.
abort();
}
LOOP_PROCESS_EVENTS_UNTIL(&main_loop, channel->events, -1,
pmap_has(uint64_t)(connected_uis, CHAN_STDIO));
}
void nvim_ui_attach(uint64_t channel_id, Integer width, Integer height,
Dictionary options, Error *err)
FUNC_API_SINCE(1) FUNC_API_REMOTE_ONLY