X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fevmgr.c;h=623bdf72ab48e3ec490bfe120dc3a2385ef7d535;hb=862fb68b0a1e60449ac6d977727c7e2b4f069c99;hp=2dc35e4280aec940445a7edce556d97dd5082dac;hpb=d9de3cd38b17ad16fb6ad6f74e83f4700c5f2b49;p=src%2Fapp-framework-binder.git diff --git a/src/evmgr.c b/src/evmgr.c index 2dc35e42..623bdf72 100644 --- a/src/evmgr.c +++ b/src/evmgr.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016-2019 "IoT.bzh" + * Copyright (C) 2015-2020 "IoT.bzh" * Author José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -47,6 +47,14 @@ struct evmgr #define EVLOOP_STATE_WAIT 1U #define EVLOOP_STATE_RUN 2U +/** + * prepare the evmgr to run + */ +void evmgr_prepare_run(struct evmgr *evmgr) +{ + evmgr->state = EVLOOP_STATE_WAIT|EVLOOP_STATE_RUN; +} + /** * Run the event loop is set. */ @@ -185,13 +193,14 @@ int evmgr_create(struct evmgr **result) /* creates the eventfd for waking up polls */ evmgr->efd = eventfd(0, EFD_CLOEXEC|EFD_SEMAPHORE); if (evmgr->efd < 0) { - ERROR("can't make eventfd for events"); rc = -errno; + ERROR("can't make eventfd for events"); goto error1; } /* create the systemd event loop */ evmgr->sdev = systemd_get_event_loop(); if (!evmgr->sdev) { + rc = -errno; ERROR("can't make new event loop"); goto error2; }