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
ac0246da
Commit
ac0246da
authored
Apr 20, 2018
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Trace-log at least part of actor_system's dtor
parent
ba20b856
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
18 deletions
+21
-18
libcaf_core/src/actor_system.cpp
libcaf_core/src/actor_system.cpp
+21
-18
No files found.
libcaf_core/src/actor_system.cpp
View file @
ac0246da
...
...
@@ -291,25 +291,28 @@ actor_system::actor_system(actor_system_config& cfg)
}
actor_system
::~
actor_system
()
{
CAF_LOG_DEBUG
(
"shutdown actor system"
);
if
(
await_actors_before_shutdown_
)
await_all_actors_done
();
// shutdown internal actors
for
(
auto
&
x
:
internal_actors_
)
{
anon_send_exit
(
x
,
exit_reason
::
user_shutdown
);
x
=
nullptr
;
{
CAF_LOG_TRACE
(
""
);
CAF_LOG_DEBUG
(
"shutdown actor system"
);
if
(
await_actors_before_shutdown_
)
await_all_actors_done
();
// shutdown internal actors
for
(
auto
&
x
:
internal_actors_
)
{
anon_send_exit
(
x
,
exit_reason
::
user_shutdown
);
x
=
nullptr
;
}
registry_
.
erase
(
atom
(
"SpawnServ"
));
registry_
.
erase
(
atom
(
"ConfigServ"
));
registry_
.
erase
(
atom
(
"StreamServ"
));
// group module is the first one, relies on MM
groups_
.
stop
();
// stop modules in reverse order
for
(
auto
i
=
modules_
.
rbegin
();
i
!=
modules_
.
rend
();
++
i
)
if
(
*
i
)
(
*
i
)
->
stop
();
await_detached_threads
();
registry_
.
stop
();
}
registry_
.
erase
(
atom
(
"SpawnServ"
));
registry_
.
erase
(
atom
(
"ConfigServ"
));
registry_
.
erase
(
atom
(
"StreamServ"
));
// group module is the first one, relies on MM
groups_
.
stop
();
// stop modules in reverse order
for
(
auto
i
=
modules_
.
rbegin
();
i
!=
modules_
.
rend
();
++
i
)
if
(
*
i
)
(
*
i
)
->
stop
();
await_detached_threads
();
registry_
.
stop
();
// reset logger and wait until dtor was called
CAF_SET_LOGGER_SYS
(
nullptr
);
logger_
.
reset
();
...
...
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