Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
actor-incubator
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
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-incubator
Commits
64b23a5b
Commit
64b23a5b
authored
Jan 10, 2020
by
Jakob Otto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix shutdown routine
parent
74dbde15
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
10 additions
and
2 deletions
+10
-2
libcaf_net/caf/net/multiplexer.hpp
libcaf_net/caf/net/multiplexer.hpp
+2
-0
libcaf_net/src/multiplexer.cpp
libcaf_net/src/multiplexer.cpp
+4
-1
libcaf_net/src/net/middleman.cpp
libcaf_net/src/net/middleman.cpp
+4
-1
No files found.
libcaf_net/caf/net/multiplexer.hpp
View file @
64b23a5b
...
@@ -61,6 +61,8 @@ public:
...
@@ -61,6 +61,8 @@ public:
/// Returns the index of `mgr` in the pollset or `-1`.
/// Returns the index of `mgr` in the pollset or `-1`.
ptrdiff_t
index_of
(
const
socket_manager_ptr
&
mgr
);
ptrdiff_t
index_of
(
const
socket_manager_ptr
&
mgr
);
bool
is_same_thread
();
// -- thread-safe signaling --------------------------------------------------
// -- thread-safe signaling --------------------------------------------------
/// Registers `mgr` for read events.
/// Registers `mgr` for read events.
...
...
libcaf_net/src/multiplexer.cpp
View file @
64b23a5b
...
@@ -104,6 +104,10 @@ ptrdiff_t multiplexer::index_of(const socket_manager_ptr& mgr) {
...
@@ -104,6 +104,10 @@ ptrdiff_t multiplexer::index_of(const socket_manager_ptr& mgr) {
return
i
==
last
?
-
1
:
std
::
distance
(
first
,
i
);
return
i
==
last
?
-
1
:
std
::
distance
(
first
,
i
);
}
}
bool
multiplexer
::
is_same_thread
()
{
return
std
::
this_thread
::
get_id
()
==
tid_
;
}
void
multiplexer
::
register_reading
(
const
socket_manager_ptr
&
mgr
)
{
void
multiplexer
::
register_reading
(
const
socket_manager_ptr
&
mgr
)
{
if
(
std
::
this_thread
::
get_id
()
==
tid_
)
{
if
(
std
::
this_thread
::
get_id
()
==
tid_
)
{
if
(
mgr
->
mask
()
!=
operation
::
none
)
{
if
(
mgr
->
mask
()
!=
operation
::
none
)
{
...
@@ -242,7 +246,6 @@ void multiplexer::shutdown() {
...
@@ -242,7 +246,6 @@ void multiplexer::shutdown() {
}
}
}
else
{
}
else
{
write_to_pipe
(
5
,
nullptr
);
write_to_pipe
(
5
,
nullptr
);
run
();
}
}
}
}
...
...
libcaf_net/src/net/middleman.cpp
View file @
64b23a5b
...
@@ -55,7 +55,10 @@ void middleman::start() {
...
@@ -55,7 +55,10 @@ void middleman::start() {
void
middleman
::
stop
()
{
void
middleman
::
stop
()
{
for
(
const
auto
&
backend
:
backends_
)
for
(
const
auto
&
backend
:
backends_
)
backend
->
stop
();
backend
->
stop
();
if
(
mpx_thread_
.
joinable
())
mpx_
->
shutdown
();
if
(
mpx_
->
is_same_thread
())
mpx_
->
run
();
else
if
(
mpx_thread_
.
joinable
())
mpx_thread_
.
join
();
mpx_thread_
.
join
();
}
}
...
...
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