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
baf0679b
Commit
baf0679b
authored
Mar 07, 2015
by
Dominik Charousset
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update code that assumed ref counts start at 0
parent
ec8ba04f
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
23 additions
and
18 deletions
+23
-18
libcaf_core/caf/detail/decorated_tuple.hpp
libcaf_core/caf/detail/decorated_tuple.hpp
+2
-1
libcaf_core/caf/detail/message_data.hpp
libcaf_core/caf/detail/message_data.hpp
+2
-1
libcaf_core/caf/message.hpp
libcaf_core/caf/message.hpp
+0
-2
libcaf_core/src/actor_proxy.cpp
libcaf_core/src/actor_proxy.cpp
+5
-2
libcaf_core/src/behavior_impl.cpp
libcaf_core/src/behavior_impl.cpp
+1
-1
libcaf_core/src/decorated_tuple.cpp
libcaf_core/src/decorated_tuple.cpp
+3
-1
libcaf_core/src/group_manager.cpp
libcaf_core/src/group_manager.cpp
+2
-1
libcaf_core/src/message.cpp
libcaf_core/src/message.cpp
+0
-4
libcaf_core/src/message_builder.cpp
libcaf_core/src/message_builder.cpp
+5
-3
libcaf_core/src/node_id.cpp
libcaf_core/src/node_id.cpp
+3
-2
No files found.
libcaf_core/caf/detail/decorated_tuple.hpp
View file @
baf0679b
...
@@ -43,6 +43,8 @@ class decorated_tuple : public message_data {
...
@@ -43,6 +43,8 @@ class decorated_tuple : public message_data {
using
message_data
::
cow_ptr
;
using
message_data
::
cow_ptr
;
decorated_tuple
(
cow_ptr
&&
,
vector_type
&&
);
// creates a typed subtuple from `d` with mapping `v`
// creates a typed subtuple from `d` with mapping `v`
static
cow_ptr
make
(
cow_ptr
d
,
vector_type
v
);
static
cow_ptr
make
(
cow_ptr
d
,
vector_type
v
);
...
@@ -72,7 +74,6 @@ class decorated_tuple : public message_data {
...
@@ -72,7 +74,6 @@ class decorated_tuple : public message_data {
}
}
private:
private:
decorated_tuple
(
cow_ptr
&&
,
vector_type
&&
);
decorated_tuple
(
const
decorated_tuple
&
)
=
default
;
decorated_tuple
(
const
decorated_tuple
&
)
=
default
;
cow_ptr
m_decorated
;
cow_ptr
m_decorated
;
...
...
libcaf_core/caf/detail/message_data.hpp
View file @
baf0679b
...
@@ -83,7 +83,8 @@ class message_data : public ref_counted {
...
@@ -83,7 +83,8 @@ class message_data : public ref_counted {
cow_ptr
&
operator
=
(
cow_ptr
&&
)
=
default
;
cow_ptr
&
operator
=
(
cow_ptr
&&
)
=
default
;
cow_ptr
&
operator
=
(
const
cow_ptr
&
)
=
default
;
cow_ptr
&
operator
=
(
const
cow_ptr
&
)
=
default
;
inline
cow_ptr
(
intrusive_ptr
<
message_data
>
p
)
:
m_ptr
(
std
::
move
(
p
))
{
template
<
class
T
>
cow_ptr
(
intrusive_ptr
<
T
>
p
)
:
m_ptr
(
std
::
move
(
p
))
{
// nop
// nop
}
}
...
...
libcaf_core/caf/message.hpp
View file @
baf0679b
...
@@ -311,8 +311,6 @@ class message {
...
@@ -311,8 +311,6 @@ class message {
using
data_ptr
=
detail
::
message_data
::
cow_ptr
;
using
data_ptr
=
detail
::
message_data
::
cow_ptr
;
explicit
message
(
raw_ptr
);
explicit
message
(
const
data_ptr
&
vals
);
explicit
message
(
const
data_ptr
&
vals
);
inline
data_ptr
&
vals
()
{
inline
data_ptr
&
vals
()
{
...
...
libcaf_core/src/actor_proxy.cpp
View file @
baf0679b
...
@@ -37,7 +37,9 @@ actor_proxy::anchor::anchor(actor_proxy* instance) : m_ptr(instance) {
...
@@ -37,7 +37,9 @@ actor_proxy::anchor::anchor(actor_proxy* instance) : m_ptr(instance) {
// nop
// nop
}
}
actor_proxy
::
anchor
::~
anchor
()
{}
actor_proxy
::
anchor
::~
anchor
()
{
// nop
}
bool
actor_proxy
::
anchor
::
expired
()
const
{
bool
actor_proxy
::
anchor
::
expired
()
const
{
return
!
m_ptr
;
return
!
m_ptr
;
...
@@ -70,7 +72,8 @@ actor_proxy::~actor_proxy() {
...
@@ -70,7 +72,8 @@ actor_proxy::~actor_proxy() {
}
}
actor_proxy
::
actor_proxy
(
actor_id
aid
,
node_id
nid
)
actor_proxy
::
actor_proxy
(
actor_id
aid
,
node_id
nid
)
:
abstract_actor
(
aid
,
nid
),
m_anchor
(
new
anchor
{
this
})
{
:
abstract_actor
(
aid
,
nid
),
m_anchor
(
make_counted
<
anchor
>
(
this
))
{
// nop
// nop
}
}
...
...
libcaf_core/src/behavior_impl.cpp
View file @
baf0679b
...
@@ -90,7 +90,7 @@ void behavior_impl::handle_timeout() {
...
@@ -90,7 +90,7 @@ void behavior_impl::handle_timeout() {
behavior_impl
::
pointer
behavior_impl
::
or_else
(
const
pointer
&
other
)
{
behavior_impl
::
pointer
behavior_impl
::
or_else
(
const
pointer
&
other
)
{
CAF_REQUIRE
(
other
!=
nullptr
);
CAF_REQUIRE
(
other
!=
nullptr
);
return
new
combinator
(
this
,
other
);
return
make_counted
<
combinator
>
(
this
,
other
);
}
}
}
// namespace detail
}
// namespace detail
...
...
libcaf_core/src/decorated_tuple.cpp
View file @
baf0679b
...
@@ -19,6 +19,8 @@
...
@@ -19,6 +19,8 @@
#include "caf/detail/decorated_tuple.hpp"
#include "caf/detail/decorated_tuple.hpp"
#include "caf/make_counted.hpp"
namespace
caf
{
namespace
caf
{
namespace
detail
{
namespace
detail
{
...
@@ -31,7 +33,7 @@ decorated_tuple::cow_ptr decorated_tuple::make(cow_ptr d, vector_type v) {
...
@@ -31,7 +33,7 @@ decorated_tuple::cow_ptr decorated_tuple::make(cow_ptr d, vector_type v) {
v
[
i
]
=
pmap
[
v
[
i
]];
v
[
i
]
=
pmap
[
v
[
i
]];
}
}
}
}
return
cow_ptr
{
new
decorated_tuple
(
std
::
move
(
d
),
std
::
move
(
v
))}
;
return
make_counted
<
decorated_tuple
>
(
std
::
move
(
d
),
std
::
move
(
v
))
;
}
}
void
*
decorated_tuple
::
mutable_at
(
size_t
pos
)
{
void
*
decorated_tuple
::
mutable_at
(
size_t
pos
)
{
...
...
libcaf_core/src/group_manager.cpp
View file @
baf0679b
...
@@ -346,7 +346,8 @@ class local_group_module : public abstract_group::module {
...
@@ -346,7 +346,8 @@ class local_group_module : public abstract_group::module {
if
(
i
!=
m_proxies
.
end
())
{
if
(
i
!=
m_proxies
.
end
())
{
return
{
i
->
second
};
return
{
i
->
second
};
}
}
local_group_ptr
tmp
{
new
local_group_proxy
{
broker
,
this
,
identifier
}};
local_group_ptr
tmp
=
make_counted
<
local_group_proxy
>
(
broker
,
this
,
identifier
);
upgrade_to_unique_guard
uguard
(
guard
);
upgrade_to_unique_guard
uguard
(
guard
);
auto
p
=
m_proxies
.
insert
(
std
::
make_pair
(
broker
,
tmp
));
auto
p
=
m_proxies
.
insert
(
std
::
make_pair
(
broker
,
tmp
));
// someone might preempt us
// someone might preempt us
...
...
libcaf_core/src/message.cpp
View file @
baf0679b
...
@@ -30,10 +30,6 @@
...
@@ -30,10 +30,6 @@
namespace
caf
{
namespace
caf
{
message
::
message
(
detail
::
message_data
*
ptr
)
:
m_vals
(
ptr
)
{
// nop
}
message
::
message
(
message
&&
other
)
:
m_vals
(
std
::
move
(
other
.
m_vals
))
{
message
::
message
(
message
&&
other
)
:
m_vals
(
std
::
move
(
other
.
m_vals
))
{
// nop
// nop
}
}
...
...
libcaf_core/src/message_builder.cpp
View file @
baf0679b
...
@@ -67,7 +67,7 @@ class message_builder::dynamic_msg_data : public detail::message_data {
...
@@ -67,7 +67,7 @@ class message_builder::dynamic_msg_data : public detail::message_data {
}
}
cow_ptr
copy
()
const
override
{
cow_ptr
copy
()
const
override
{
return
cow_ptr
(
new
dynamic_msg_data
(
*
this
),
false
);
return
make_counted
<
dynamic_msg_data
>
(
*
this
);
}
}
bool
match_element
(
size_t
pos
,
uint16_t
typenr
,
bool
match_element
(
size_t
pos
,
uint16_t
typenr
,
...
@@ -126,7 +126,7 @@ void message_builder::init() {
...
@@ -126,7 +126,7 @@ void message_builder::init() {
// this should really be done by delegating
// this should really be done by delegating
// constructors, but we want to support
// constructors, but we want to support
// some compilers without that feature...
// some compilers without that feature...
m_data
.
reset
(
new
dynamic_msg_data
);
m_data
=
make_counted
<
dynamic_msg_data
>
(
);
}
}
void
message_builder
::
clear
()
{
void
message_builder
::
clear
()
{
...
@@ -149,7 +149,9 @@ message_builder& message_builder::append(uniform_value what) {
...
@@ -149,7 +149,9 @@ message_builder& message_builder::append(uniform_value what) {
message
message_builder
::
to_message
()
const
{
message
message_builder
::
to_message
()
const
{
// this const_cast is safe, because the message is
// this const_cast is safe, because the message is
// guaranteed to detach its data before modifying it
// guaranteed to detach its data before modifying it
return
message
{
const_cast
<
dynamic_msg_data
*>
(
data
())};
detail
::
message_data
::
cow_ptr
ptr
;
ptr
.
reset
(
const_cast
<
dynamic_msg_data
*>
(
data
()));
return
message
{
std
::
move
(
ptr
)};
}
}
message
message_builder
::
move_to_message
()
{
message
message_builder
::
move_to_message
()
{
...
...
libcaf_core/src/node_id.cpp
View file @
baf0679b
...
@@ -117,12 +117,13 @@ node_id::node_id(intrusive_ptr<data> dataptr) : m_data(std::move(dataptr)) {
...
@@ -117,12 +117,13 @@ node_id::node_id(intrusive_ptr<data> dataptr) : m_data(std::move(dataptr)) {
}
}
node_id
::
node_id
(
uint32_t
procid
,
const
std
::
string
&
b
)
{
node_id
::
node_id
(
uint32_t
procid
,
const
std
::
string
&
b
)
{
m_data
.
reset
(
new
data
);
m_data
=
make_counted
<
data
>
(
);
m_data
->
process_id
=
procid
;
m_data
->
process_id
=
procid
;
host_id_from_string
(
b
,
m_data
->
host_id
);
host_id_from_string
(
b
,
m_data
->
host_id
);
}
}
node_id
::
node_id
(
uint32_t
a
,
const
host_id_type
&
b
)
:
m_data
(
new
data
{
a
,
b
})
{
node_id
::
node_id
(
uint32_t
a
,
const
host_id_type
&
b
)
:
m_data
(
make_counted
<
data
>
(
a
,
b
))
{
// nop
// nop
}
}
...
...
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