system/Event{FD,Pipe}: throw exception on error

This commit is contained in:
Max Kellermann 2018-08-06 11:49:38 +02:00
parent 148c38fbb9
commit 0c1a001622
4 changed files with 13 additions and 4 deletions

View File

@ -116,7 +116,11 @@ class EventLoop final : SocketMonitor
ThreadId thread = ThreadId::Null();
public:
/**
* Throws on error.
*/
explicit EventLoop(ThreadId _thread);
EventLoop():EventLoop(ThreadId::GetCurrent()) {}
~EventLoop() noexcept;

View File

@ -20,7 +20,7 @@
#include "config.h"
#ifdef USE_EVENTFD
#include "EventFD.hxx"
#include "system/FatalError.hxx"
#include "system/Error.hxx"
#include "Compiler.h"
#include <assert.h>
@ -29,7 +29,7 @@
EventFD::EventFD()
{
if (!fd.CreateEventFD(0))
FatalSystemError("eventfd() failed");
throw MakeErrno("eventfd() failed");
}
bool

View File

@ -25,13 +25,14 @@
/**
* A class that wraps eventfd().
*
* Errors in the constructor are fatal.
*/
class EventFD {
UniqueFileDescriptor fd;
public:
/**
* Throws on error.
*/
EventFD();
int Get() const {

View File

@ -31,7 +31,11 @@ class EventPipe {
int fds[2];
public:
/**
* Throws on error.
*/
EventPipe();
~EventPipe();
EventPipe(const EventPipe &other) = delete;