2 * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Contact: Jan Olszak <j.olszak@samsung.com>
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License
21 * @author Jan Olszak (j.olszak@samsung.com)
22 * @brief Linux socket wrapper
27 #include "utils/eventfd.hpp"
28 #include "utils/exception.hpp"
29 #include "utils/fd-utils.hpp"
30 #include "logger/logger.hpp"
32 #include <sys/eventfd.h>
41 mFD = ::eventfd(0, EFD_SEMAPHORE | EFD_CLOEXEC);
43 const std::string msg = "Error in eventfd: " + getSystemErrorMessage();
45 throw EventFDException(msg);
54 int EventFD::getFD() const
61 const std::uint64_t toSend = 1;
62 utils::write(mFD, &toSend, sizeof(toSend));
65 void EventFD::receive()
67 std::uint64_t readBuffer;
68 utils::read(mFD, &readBuffer, sizeof(readBuffer));