X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Futil.cpp;h=c178d90a99905b029748e691f0655d6fa83c2b3b;hb=refs%2Ftags%2F5.0.0;hp=50423427c1bf0770b83a4c851c073e6dc24bf09d;hpb=d45f8674ced71594fa9ba99900cc87a19fcecb20;p=staging%2Fwindowmanager.git diff --git a/src/util.cpp b/src/util.cpp index 5042342..c178d90 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2017 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "util.hpp" #include @@ -8,27 +24,13 @@ #include -void Poller::add_fd(int fd, std::function handler) { - pfds.emplace_back(pollfd{.fd = fd, .events = POLLIN, .revents = 0}); - handlers.emplace_back(std::move(handler)); -} - -int Poller::check_events() { - int ret = 0; - if ((ret = poll(this->pfds.data(), this->pfds.size(), -1)) != -1 && - errno != EINTR) { - for (unsigned i = 0; i < pfds.size(); i++) { - if ((pfds[i].revents & POLLIN) != 0) { - if (handlers[i](pfds[i].fd) == -1) { - return -1; - } - pfds[i].revents = 0; - pfds[i].events = POLLIN; - } - } - } - return ret; +#ifdef SCOPE_TRACING +thread_local int ScopeTrace::indent = 0; +ScopeTrace::ScopeTrace(char const *func) : f(func) { + fprintf(stderr, "%lu %*s%s -->\n", pthread_self(), 2 * indent++, "", this->f); } +ScopeTrace::~ScopeTrace() { fprintf(stderr, "%lu %*s%s <--\n", pthread_self(), 2 * --indent, "", this->f); } +#endif unique_fd::~unique_fd() { if (this->fd != -1) {