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
a6c7daab
Commit
a6c7daab
authored
Aug 28, 2019
by
Joseph Noir
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleanup socket guard
parent
68c4d377
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
15 deletions
+17
-15
libcaf_net/caf/net/socket_guard.hpp
libcaf_net/caf/net/socket_guard.hpp
+2
-5
libcaf_net/test/socket_guard.cpp
libcaf_net/test/socket_guard.cpp
+15
-10
No files found.
libcaf_net/caf/net/socket_guard.hpp
View file @
a6c7daab
...
...
@@ -18,7 +18,7 @@
#pragma once
#include "caf/net/socket.hpp"
#include "caf/net/socket
_id
.hpp"
namespace
caf
{
namespace
net
{
...
...
@@ -32,11 +32,8 @@ public:
}
~
socket_guard
()
{
using
net
::
close
;
if
(
sock_
.
id
!=
invalid_socket_id
)
{
if
(
sock_
.
id
!=
invalid_socket_id
)
close
(
sock_
);
sock_
.
id
=
invalid_socket_id
;
}
}
Socket
release
()
{
...
...
libcaf_net/test/socket_guard.cpp
View file @
a6c7daab
...
...
@@ -51,31 +51,36 @@ void close(dummy_socket x) {
x
.
closed
=
true
;
}
struct
fixture
{
fixture
()
:
id
{
dummy_id
},
closed
{
false
},
sock
{
id
,
closed
}
{
// nop
}
socket_id
id
;
bool
closed
;
dummy_socket
sock
;
};
}
// namespace
CAF_TEST_FIXTURE_SCOPE
(
socket_guard_tests
,
fixture
)
CAF_TEST
(
cleanup
)
{
auto
id
=
dummy_id
;
auto
closed
=
false
;
dummy_socket
sock
{
id
,
closed
};
{
auto
guard
=
make_socket_guard
(
sock
);
CAF_CHECK_EQUAL
(
sock
.
id
,
dummy_id
);
}
CAF_CHECK_EQUAL
(
sock
.
id
,
invalid_socket_id
);
CAF_CHECK
(
sock
.
closed
);
}
CAF_TEST
(
release
)
{
auto
id
=
dummy_id
;
auto
closed
=
false
;
dummy_socket
sock
{
id
,
closed
};
{
auto
guard
=
make_socket_guard
(
sock
);
CAF_CHECK_EQUAL
(
sock
.
id
,
dummy_id
);
auto
released
=
guard
.
release
();
guard
.
release
();
CAF_CHECK_EQUAL
(
sock
.
id
,
invalid_socket_id
);
sock
=
released
;
}
// Cannot check socket.id because it is a reference and will be invalidated.
CAF_CHECK_EQUAL
(
sock
.
closed
,
false
);
}
CAF_TEST_FIXTURE_SCOPE_END
()
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