Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mpd
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Иван Мажукин
mpd
Commits
8348a1ec
Commit
8348a1ec
authored
Oct 19, 2020
by
Max Kellermann
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
event/PollGroup: rename to PollBackend
parent
c18e00da
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
63 additions
and
63 deletions
+63
-63
Backend.hxx
src/event/Backend.hxx
+8
-8
BackendEvents.hxx
src/event/BackendEvents.hxx
+3
-3
EpollBackend.hxx
src/event/EpollBackend.hxx
+9
-9
Loop.cxx
src/event/Loop.cxx
+5
-5
Loop.hxx
src/event/Loop.hxx
+3
-3
PollBackend.cxx
src/event/PollBackend.cxx
+7
-7
PollBackend.hxx
src/event/PollBackend.hxx
+7
-7
SocketEvent.hxx
src/event/SocketEvent.hxx
+1
-1
WinSelectBackend.cxx
src/event/WinSelectBackend.cxx
+11
-11
WinSelectBackend.hxx
src/event/WinSelectBackend.hxx
+7
-7
meson.build
src/event/meson.build
+2
-2
No files found.
src/event/
PollGroup
.hxx
→
src/event/
Backend
.hxx
View file @
8348a1ec
...
...
@@ -17,25 +17,25 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef
MPD_EVENT_POLLGROUP
_HXX
#define
MPD_EVENT_POLLGROUP
_HXX
#ifndef
EVENT_BACKEND
_HXX
#define
EVENT_BACKEND
_HXX
#include "event/Features.h"
#ifdef _WIN32
#include "
PollGroupWinSelect
.hxx"
typedef
PollGroupWinSelect
PollGroup
;
#include "
WinSelectBackend
.hxx"
using
EventPollBackend
=
WinSelectBackend
;
#elif defined(USE_EPOLL)
#include "
PollGroupEpoll
.hxx"
typedef
PollGroupEpoll
PollGroup
;
#include "
EpollBackend
.hxx"
using
EventPollBackend
=
EpollBackend
;
#else
#include "Poll
GroupPoll
.hxx"
typedef
PollGroupPoll
PollGroup
;
#include "Poll
Backend
.hxx"
using
EventPollBackend
=
PollBackend
;
#endif
...
...
src/event/BackendEvents.hxx
View file @
8348a1ec
...
...
@@ -25,17 +25,17 @@
#ifdef _WIN32
#include "WinSelectEvents.hxx"
using
PollBackendEvents
=
WinSelectEvents
;
using
Event
PollBackendEvents
=
WinSelectEvents
;
#elif defined(USE_EPOLL)
#include "EpollEvents.hxx"
using
PollBackendEvents
=
EpollEvents
;
using
Event
PollBackendEvents
=
EpollEvents
;
#else
#include "PollEvents.hxx"
using
PollBackendEvents
=
PollEvents
;
using
Event
PollBackendEvents
=
PollEvents
;
#endif
...
...
src/event/
PollGroupEpoll
.hxx
→
src/event/
EpollBackend
.hxx
View file @
8348a1ec
...
...
@@ -17,8 +17,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef
MPD_EVENT_POLLGROUP_EPOLL
_HXX
#define
MPD_EVENT_POLLGROUP_EPOLL
_HXX
#ifndef
EVENT_EPOLL_BACKEND
_HXX
#define
EVENT_EPOLL_BACKEND
_HXX
#include "util/Compiler.h"
#include "system/EpollFD.hxx"
...
...
@@ -26,9 +26,9 @@
#include <array>
#include <algorithm>
class
PollResultEpoll
class
EpollBackendResult
{
friend
class
PollGroupEpoll
;
friend
class
EpollBackend
;
std
::
array
<
epoll_event
,
16
>
events
;
size_t
n_events
=
0
;
...
...
@@ -47,17 +47,17 @@ public:
}
};
class
PollGroupEpoll
class
EpollBackend
{
EpollFD
epoll
;
PollGroupEpoll
(
PollGroupEpoll
&
)
=
delete
;
PollGroupEpoll
&
operator
=
(
PollGroupEpoll
&
)
=
delete
;
EpollBackend
(
EpollBackend
&
)
=
delete
;
EpollBackend
&
operator
=
(
EpollBackend
&
)
=
delete
;
public
:
PollGroupEpoll
()
=
default
;
EpollBackend
()
=
default
;
auto
ReadEvents
(
int
timeout_ms
)
noexcept
{
PollResultEpoll
result
;
EpollBackendResult
result
;
int
ret
=
epoll
.
Wait
(
result
.
events
.
data
(),
result
.
events
.
size
(),
timeout_ms
);
result
.
n_events
=
std
::
max
(
0
,
ret
);
...
...
src/event/Loop.cxx
View file @
8348a1ec
...
...
@@ -109,7 +109,7 @@ EventLoop::AbandonFD(int _fd) noexcept
assert
(
!
IsAlive
()
||
IsInside
());
#endif
return
poll_
group
.
Abandon
(
_fd
);
return
poll_
backend
.
Abandon
(
_fd
);
}
bool
...
...
@@ -120,7 +120,7 @@ EventLoop::AddFD(int fd, unsigned events, SocketEvent &event) noexcept
#endif
assert
(
events
!=
0
);
if
(
!
poll_
group
.
Add
(
fd
,
events
,
&
event
))
if
(
!
poll_
backend
.
Add
(
fd
,
events
,
&
event
))
return
false
;
sockets
.
push_back
(
event
);
...
...
@@ -135,7 +135,7 @@ EventLoop::ModifyFD(int fd, unsigned events, SocketEvent &event) noexcept
#endif
assert
(
events
!=
0
);
return
poll_
group
.
Modify
(
fd
,
events
,
&
event
);
return
poll_
backend
.
Modify
(
fd
,
events
,
&
event
);
}
bool
...
...
@@ -146,7 +146,7 @@ EventLoop::RemoveFD(int fd, SocketEvent &event) noexcept
#endif
event
.
unlink
();
return
poll_
group
.
Remove
(
fd
);
return
poll_
backend
.
Remove
(
fd
);
}
void
...
...
@@ -220,7 +220,7 @@ inline bool
EventLoop
::
Wait
(
Event
::
Duration
timeout
)
noexcept
{
const
auto
poll_result
=
poll_
group
.
ReadEvents
(
ExportTimeoutMS
(
timeout
));
poll_
backend
.
ReadEvents
(
ExportTimeoutMS
(
timeout
));
for
(
size_t
i
=
0
;
i
<
poll_result
.
GetSize
();
++
i
)
{
auto
&
socket_event
=
*
(
SocketEvent
*
)
poll_result
.
GetObject
(
i
);
...
...
src/event/Loop.hxx
View file @
8348a1ec
...
...
@@ -21,7 +21,7 @@
#define MPD_EVENT_LOOP_HXX
#include "Chrono.hxx"
#include "
PollGroup
.hxx"
#include "
Backend
.hxx"
#include "SocketEvent.hxx"
#include "event/Features.h"
#include "util/Compiler.h"
...
...
@@ -130,7 +130,7 @@ class EventLoop final
/**
* True when the object has been modified and another check is
* necessary before going to sleep via
PollGroup
::ReadEvents().
* necessary before going to sleep via
EventPollBackend
::ReadEvents().
*/
bool
again
;
...
...
@@ -148,7 +148,7 @@ class EventLoop final
bool
uring_initialized
=
false
;
#endif
PollGroup
poll_group
;
EventPollBackend
poll_backend
;
public
:
/**
...
...
src/event/Poll
GroupPoll
.cxx
→
src/event/Poll
Backend
.cxx
View file @
8348a1ec
...
...
@@ -17,15 +17,15 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "Poll
GroupPoll
.hxx"
#include "Poll
Backend
.hxx"
#include <cassert>
Poll
GroupPoll
::
PollGroupPoll
()
noexcept
=
default
;
Poll
GroupPoll
::~
PollGroupPoll
()
noexcept
=
default
;
Poll
Backend
::
PollBackend
()
noexcept
=
default
;
Poll
Backend
::~
PollBackend
()
noexcept
=
default
;
bool
Poll
GroupPoll
::
Add
(
int
fd
,
unsigned
events
,
void
*
obj
)
noexcept
Poll
Backend
::
Add
(
int
fd
,
unsigned
events
,
void
*
obj
)
noexcept
{
assert
(
items
.
find
(
fd
)
==
items
.
end
());
...
...
@@ -42,7 +42,7 @@ PollGroupPoll::Add(int fd, unsigned events, void *obj) noexcept
}
bool
Poll
GroupPoll
::
Modify
(
int
fd
,
unsigned
events
,
void
*
obj
)
noexcept
Poll
Backend
::
Modify
(
int
fd
,
unsigned
events
,
void
*
obj
)
noexcept
{
auto
item_iter
=
items
.
find
(
fd
);
assert
(
item_iter
!=
items
.
end
());
...
...
@@ -55,7 +55,7 @@ PollGroupPoll::Modify(int fd, unsigned events, void *obj) noexcept
}
bool
Poll
GroupPoll
::
Remove
(
int
fd
)
noexcept
Poll
Backend
::
Remove
(
int
fd
)
noexcept
{
auto
item_iter
=
items
.
find
(
fd
);
assert
(
item_iter
!=
items
.
end
());
...
...
@@ -72,7 +72,7 @@ PollGroupPoll::Remove(int fd) noexcept
}
PollResultGeneric
Poll
GroupPoll
::
ReadEvents
(
int
timeout_ms
)
noexcept
Poll
Backend
::
ReadEvents
(
int
timeout_ms
)
noexcept
{
int
n
=
poll
(
poll_events
.
empty
()
?
nullptr
:
&
poll_events
[
0
],
poll_events
.
size
(),
timeout_ms
);
...
...
src/event/Poll
GroupPoll
.hxx
→
src/event/Poll
Backend
.hxx
View file @
8348a1ec
...
...
@@ -17,8 +17,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef
MPD_EVENT_POLLGROUP_POLL
_HXX
#define
MPD_EVENT_POLLGROUP_POLL
_HXX
#ifndef
EVENT_POLL_BACKEND
_HXX
#define
EVENT_POLL_BACKEND
_HXX
#include "PollResultGeneric.hxx"
...
...
@@ -28,7 +28,7 @@
#include <sys/poll.h>
class
Poll
GroupPoll
class
Poll
Backend
{
struct
Item
{
...
...
@@ -39,11 +39,11 @@ class PollGroupPoll
std
::
vector
<
pollfd
>
poll_events
;
std
::
unordered_map
<
int
,
Item
>
items
;
Poll
GroupPoll
(
PollGroupPoll
&
)
=
delete
;
Poll
GroupPoll
&
operator
=
(
PollGroupPoll
&
)
=
delete
;
Poll
Backend
(
PollBackend
&
)
=
delete
;
Poll
Backend
&
operator
=
(
PollBackend
&
)
=
delete
;
public
:
Poll
GroupPoll
()
noexcept
;
~
Poll
GroupPoll
()
noexcept
;
Poll
Backend
()
noexcept
;
~
Poll
Backend
()
noexcept
;
PollResultGeneric
ReadEvents
(
int
timeout_ms
)
noexcept
;
bool
Add
(
int
fd
,
unsigned
events
,
void
*
obj
)
noexcept
;
...
...
src/event/SocketEvent.hxx
View file @
8348a1ec
...
...
@@ -44,7 +44,7 @@ class EventLoop;
* thread that runs the #EventLoop, except where explicitly documented
* as thread-safe.
*/
class
SocketEvent
final
:
IntrusiveListHook
,
public
PollBackendEvents
{
class
SocketEvent
final
:
IntrusiveListHook
,
public
Event
PollBackendEvents
{
friend
class
EventLoop
;
friend
class
IntrusiveList
<
SocketEvent
>
;
...
...
src/event/
PollGroupWinSelect
.cxx
→
src/event/
WinSelectBackend
.cxx
View file @
8348a1ec
...
...
@@ -17,7 +17,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "
PollGroupWinSelect
.hxx"
#include "
WinSelectBackend
.hxx"
#include "WinSelectEvents.hxx"
static
constexpr
int
EVENT_READ
=
0
;
...
...
@@ -29,12 +29,12 @@ bool HasEvent(unsigned events, int event_id) noexcept
return
(
events
&
(
1
<<
event_id
))
!=
0
;
}
PollGroupWinSelect
::
PollGroupWinSelect
()
noexcept
=
default
;
PollGroupWinSelect
::~
PollGroupWinSelect
()
noexcept
=
default
;
WinSelectBackend
::
WinSelectBackend
()
noexcept
=
default
;
WinSelectBackend
::~
WinSelectBackend
()
noexcept
=
default
;
bool
PollGroupWinSelect
::
CanModify
(
PollGroupWinSelect
::
Item
&
item
,
unsigned
events
,
int
event_id
)
const
noexcept
WinSelectBackend
::
CanModify
(
WinSelectBackend
::
Item
&
item
,
unsigned
events
,
int
event_id
)
const
noexcept
{
if
(
item
.
index
[
event_id
]
<
0
&&
HasEvent
(
events
,
event_id
))
return
!
event_set
[
event_id
].
IsFull
();
...
...
@@ -42,8 +42,8 @@ PollGroupWinSelect::CanModify(PollGroupWinSelect::Item &item,
}
void
PollGroupWinSelect
::
Modify
(
PollGroupWinSelect
::
Item
&
item
,
SOCKET
fd
,
unsigned
events
,
int
event_id
)
noexcept
WinSelectBackend
::
Modify
(
WinSelectBackend
::
Item
&
item
,
SOCKET
fd
,
unsigned
events
,
int
event_id
)
noexcept
{
int
index
=
item
.
index
[
event_id
];
auto
&
set
=
event_set
[
event_id
];
...
...
@@ -61,7 +61,7 @@ PollGroupWinSelect::Modify(PollGroupWinSelect::Item &item, SOCKET fd,
}
bool
PollGroupWinSelect
::
Add
(
SOCKET
fd
,
unsigned
events
,
void
*
obj
)
noexcept
WinSelectBackend
::
Add
(
SOCKET
fd
,
unsigned
events
,
void
*
obj
)
noexcept
{
assert
(
items
.
find
(
fd
)
==
items
.
end
());
auto
&
item
=
items
[
fd
];
...
...
@@ -86,7 +86,7 @@ PollGroupWinSelect::Add(SOCKET fd, unsigned events, void *obj) noexcept
}
bool
PollGroupWinSelect
::
Modify
(
SOCKET
fd
,
unsigned
events
,
void
*
obj
)
noexcept
WinSelectBackend
::
Modify
(
SOCKET
fd
,
unsigned
events
,
void
*
obj
)
noexcept
{
auto
item_iter
=
items
.
find
(
fd
);
assert
(
item_iter
!=
items
.
end
());
...
...
@@ -104,7 +104,7 @@ PollGroupWinSelect::Modify(SOCKET fd, unsigned events, void *obj) noexcept
}
bool
PollGroupWinSelect
::
Remove
(
SOCKET
fd
)
noexcept
WinSelectBackend
::
Remove
(
SOCKET
fd
)
noexcept
{
auto
item_iter
=
items
.
find
(
fd
);
assert
(
item_iter
!=
items
.
end
());
...
...
@@ -117,7 +117,7 @@ PollGroupWinSelect::Remove(SOCKET fd) noexcept
}
PollResultGeneric
PollGroupWinSelect
::
ReadEvents
(
int
timeout_ms
)
noexcept
WinSelectBackend
::
ReadEvents
(
int
timeout_ms
)
noexcept
{
bool
use_sleep
=
event_set
[
EVENT_READ
].
IsEmpty
()
&&
event_set
[
EVENT_WRITE
].
IsEmpty
();
...
...
src/event/
PollGroupWinSelect
.hxx
→
src/event/
WinSelectBackend
.hxx
View file @
8348a1ec
...
...
@@ -17,8 +17,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef
MPD_EVENT_POLLGROUP_WINSELECT
_HXX
#define
MPD_EVENT_POLLGROUP_WINSELECT
_HXX
#ifndef
EVENT_WINSELECT_BACKEND
_HXX
#define
EVENT_WINSELECT_BACKEND
_HXX
#include "PollResultGeneric.hxx"
...
...
@@ -87,7 +87,7 @@ public:
}
};
class
PollGroupWinSelect
class
WinSelectBackend
{
struct
Item
{
...
...
@@ -104,11 +104,11 @@ class PollGroupWinSelect
void
Modify
(
Item
&
item
,
SOCKET
fd
,
unsigned
events
,
int
event_id
)
noexcept
;
PollGroupWinSelect
(
PollGroupWinSelect
&
)
=
delete
;
PollGroupWinSelect
&
operator
=
(
PollGroupWinSelect
&
)
=
delete
;
WinSelectBackend
(
WinSelectBackend
&
)
=
delete
;
WinSelectBackend
&
operator
=
(
WinSelectBackend
&
)
=
delete
;
public
:
PollGroupWinSelect
()
noexcept
;
~
PollGroupWinSelect
()
noexcept
;
WinSelectBackend
()
noexcept
;
~
WinSelectBackend
()
noexcept
;
PollResultGeneric
ReadEvents
(
int
timeout_ms
)
noexcept
;
bool
Add
(
SOCKET
fd
,
unsigned
events
,
void
*
obj
)
noexcept
;
...
...
src/event/meson.build
View file @
8348a1ec
...
...
@@ -12,11 +12,11 @@ if uring_dep.found()
endif
if is_windows
event_sources += '
PollGroupWinSelect
.cxx'
event_sources += '
WinSelectBackend
.cxx'
elif is_linux and get_option('epoll')
# epoll support is header-only
else
event_sources += 'Poll
GroupPoll
.cxx'
event_sources += 'Poll
Backend
.cxx'
endif
event = static_library(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment