tools/demo-server: only print now if we actually have events

And move it to the start of the loop so we print the current timestamp
followed by processing the incoming events (if any). These events thus
should have timestamps less than now.
This commit is contained in:
Peter Hutterer 2023-04-06 14:16:28 +10:00
parent 408a3a9462
commit 2a178f416f
2 changed files with 15 additions and 3 deletions

View file

@ -352,6 +352,8 @@ eis_demo_server_printf_handle_event(struct eis_demo_server *server,
eis_client_get_name(client));
eis_demo_client_new(server, client);
if (!is_sender)
server->nreceiver_clients++;
/* insert sophisticated authentication here */
eis_client_connect(client);
@ -368,6 +370,10 @@ eis_demo_server_printf_handle_event(struct eis_demo_server *server,
case EIS_EVENT_CLIENT_DISCONNECT:
{
struct eis_client *client = eis_event_get_client(e);
bool is_sender = eis_client_is_sender(client);
if (!is_sender)
server->nreceiver_clients--;
colorprint("client %s disconnected\n", eis_client_get_name(client));
eis_client_disconnect(client);
@ -657,7 +663,14 @@ int main(int argc, char **argv)
.revents = 0,
};
while (!stop && poll(&fds, 1, 1000) > -1) {
int nevents;
while (!stop && (nevents = poll(&fds, 1, 1000)) > -1) {
if (nevents == 0 && server.nreceiver_clients == 0)
continue;
uint64_t now = eis_now(eis);
colorprint("now: %" PRIu64 "\n", now);
eis_dispatch(eis);
while (true) {
@ -671,8 +684,6 @@ int main(int argc, char **argv)
}
struct eis_demo_client *democlient;
uint64_t now = eis_now(eis);
colorprint("now: %" PRIu64 "\n", now);
const int interval = ms2us(12); /* events are 12ms apart */
list_for_each(democlient, &server.clients, link) {

View file

@ -57,6 +57,7 @@ struct eis_demo_server {
} handler;
struct list clients;
unsigned int nreceiver_clients;
};
#if HAVE_LIBEVDEV