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
75218859
Commit
75218859
authored
Feb 24, 2018
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename {bool remove => void erase}_stream_manager
parent
ea00044b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
8 deletions
+7
-8
libcaf_core/caf/scheduled_actor.hpp
libcaf_core/caf/scheduled_actor.hpp
+1
-1
libcaf_core/src/scheduled_actor.cpp
libcaf_core/src/scheduled_actor.cpp
+6
-7
No files found.
libcaf_core/caf/scheduled_actor.hpp
View file @
75218859
...
...
@@ -1111,7 +1111,7 @@ public:
bool
add_stream_manager
(
stream_slots
id
,
stream_manager_ptr
ptr
);
/// Removes a new stream manager.
bool
remov
e_stream_manager
(
stream_slots
id
);
void
eras
e_stream_manager
(
stream_slots
id
);
/// @pre `x.content().match_elements<open_stream_msg>()`
invoke_message_result
handle_open_stream_msg
(
mailbox_element
&
x
);
...
...
libcaf_core/src/scheduled_actor.cpp
View file @
75218859
...
...
@@ -284,6 +284,7 @@ struct downstream_msg_visitor {
auto
&
inptr
=
q_ref
.
policy
().
handler
;
if
(
inptr
==
nullptr
)
return
intrusive
::
task_result
::
stop
;
// Do *not* store a reference here since we potentially reset `inptr`.
auto
mgr
=
inptr
->
mgr
;
inptr
->
handle
(
x
);
// TODO: replace with `if constexpr` when switching to C++17
...
...
@@ -291,7 +292,7 @@ struct downstream_msg_visitor {
||
std
::
is_same
<
T
,
downstream_msg
::
forced_close
>::
value
)
{
inptr
.
reset
();
qs_ref
.
erase_later
(
dm
.
slots
.
receiver
);
selfptr
->
remov
e_stream_manager
(
dm
.
slots
);
selfptr
->
eras
e_stream_manager
(
dm
.
slots
);
if
(
mgr
->
done
())
mgr
->
stop
();
return
intrusive
::
task_result
::
stop
;
...
...
@@ -299,7 +300,7 @@ struct downstream_msg_visitor {
else
if
(
mgr
->
done
())
{
CAF_LOG_DEBUG
(
"path is done receiving and closes its manager"
);
mgr
->
stop
();
selfptr
->
remov
e_stream_manager
(
dm
.
slots
);
selfptr
->
eras
e_stream_manager
(
dm
.
slots
);
return
intrusive
::
task_result
::
stop
;
}
return
intrusive
::
task_result
::
resume
;
...
...
@@ -312,6 +313,7 @@ intrusive::task_result scheduled_actor::mailbox_visitor::
operator
()(
size_t
,
downstream_queue
&
qs
,
stream_slot
,
policy
::
downstream_messages
::
nested_queue_type
&
q
,
mailbox_element
&
x
)
{
CAF_LOG_TRACE
(
CAF_ARG
(
x
)
<<
CAF_ARG
(
handled_msgs
));
CAF_ASSERT
(
x
.
content
().
type_token
()
==
make_type_token
<
downstream_msg
>
());
auto
&
dm
=
x
.
content
().
get_mutable_as
<
downstream_msg
>
(
0
);
downstream_msg_visitor
f
{
self
,
qs
,
q
,
dm
};
...
...
@@ -924,13 +926,10 @@ bool scheduled_actor::add_stream_manager(stream_slots id,
return
result
;
}
bool
scheduled_actor
::
remov
e_stream_manager
(
stream_slots
id
)
{
void
scheduled_actor
::
eras
e_stream_manager
(
stream_slots
id
)
{
CAF_LOG_TRACE
(
CAF_ARG
(
id
));
if
(
stream_managers_
.
erase
(
id
)
==
0
)
return
false
;
if
(
stream_managers_
.
empty
())
if
(
stream_managers_
.
erase
(
id
)
!=
0
&&
stream_managers_
.
empty
())
stream_ticks_
.
stop
();
return
true
;
}
invoke_message_result
...
...
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