Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
9735fe76
Commit
9735fe76
authored
Jun 25, 2013
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
removed debug output
parent
c9cbffed
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
9 additions
and
15 deletions
+9
-15
cppa/io/middleman_event_handler.hpp
cppa/io/middleman_event_handler.hpp
+5
-2
src/middleman.cpp
src/middleman.cpp
+3
-2
src/middleman_event_handler.cpp
src/middleman_event_handler.cpp
+1
-11
No files found.
cppa/io/middleman_event_handler.hpp
View file @
9735fe76
...
...
@@ -117,12 +117,15 @@ class middleman_event_handler {
*/
void
update
();
std
::
vector
<
continuable
*>
readers
();
bool
has_reader
(
continuable
*
ptr
);
bool
has_writer
(
continuable
*
ptr
);
template
<
typename
F
>
inline
void
for_each_reader
(
F
fun
)
{
for
(
auto
&
meta
:
m_meta
)
if
(
meta
.
mask
&
event
::
read
)
fun
(
meta
.
ptr
);
}
protected:
std
::
vector
<
fd_meta_info
>
m_meta
;
// this vector is *always* sorted
...
...
src/middleman.cpp
View file @
9735fe76
...
...
@@ -343,8 +343,9 @@ void middleman_loop(middleman_impl* impl) {
}
CPPA_LOGF_DEBUG
(
"event loop done, erase all readers"
);
// make sure to write everything before shutting down
auto
readers
=
handler
->
readers
();
for
(
auto
reader
:
readers
)
{
handler
->
erase_later
(
reader
,
event
::
read
);
}
handler
->
for_each_reader
([
handler
](
continuable
*
ptr
)
{
handler
->
erase_later
(
ptr
,
event
::
read
);
});
handler
->
update
();
CPPA_LOGF_DEBUG
(
"flush outgoing messages"
);
CPPA_LOGF_DEBUG_IF
(
handler
->
num_sockets
()
==
0
,
...
...
src/middleman_event_handler.cpp
View file @
9735fe76
...
...
@@ -141,27 +141,17 @@ void middleman_event_handler::update() {
return
iter
!=
last
&&
iter
->
fd
==
fd
;
};
// check whether elements in dispose list can be safely deleted
for
(
auto
&
elem
:
m_dispose_list
)
{
for
(
auto
elem
:
m_dispose_list
)
{
auto
rd
=
elem
->
read_handle
();
auto
wr
=
elem
->
write_handle
();
if
(
(
rd
==
wr
&&
!
is_alive
(
rd
))
||
(
rd
!=
wr
&&
!
is_alive
(
rd
)
&&
!
is_alive
(
wr
)))
{
std
::
cout
<<
"SAFE TO DISPOSE ELEMENT: "
<<
elem
<<
std
::
endl
;
elem
->
dispose
();
}
else
std
::
cout
<<
"GOTTA KEEP ELEMENT: "
<<
elem
<<
std
::
endl
;
}
m_dispose_list
.
clear
();
}
std
::
vector
<
continuable
*>
middleman_event_handler
::
readers
()
{
std
::
vector
<
continuable
*>
result
;
for
(
auto
&
meta
:
m_meta
)
{
if
(
meta
.
mask
&
event
::
read
)
result
.
push_back
(
meta
.
ptr
);
}
return
result
;
}
bool
middleman_event_handler
::
has_reader
(
continuable
*
ptr
)
{
return
std
::
any_of
(
m_meta
.
begin
(),
m_meta
.
end
(),
[
=
](
fd_meta_info
&
meta
)
{
return
meta
.
ptr
==
ptr
&&
(
meta
.
mask
&
event
::
read
);
...
...
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