A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
further WIP on the ActivityImplPtr feature. Now it compiles (but fails)
[simgrid.git]
/
src
/
kernel
/
activity
/
ActivityImpl.cpp
diff --git
a/src/kernel/activity/ActivityImpl.cpp
b/src/kernel/activity/ActivityImpl.cpp
index
c732b28
..
02733ec
100644
(file)
--- a/
src/kernel/activity/ActivityImpl.cpp
+++ b/
src/kernel/activity/ActivityImpl.cpp
@@
-5,6
+5,8
@@
#include "src/kernel/activity/ActivityImpl.hpp"
#include "src/kernel/activity/ActivityImpl.hpp"
+XBT_LOG_EXTERNAL_CATEGORY(simix_network);
+
namespace simgrid {
namespace kernel {
namespace activity {
namespace simgrid {
namespace kernel {
namespace activity {
@@
-14,17
+16,22
@@
ActivityImpl::~ActivityImpl() = default;
void ActivityImpl::ref()
{
void ActivityImpl::ref()
{
- // Atomic operation! Do not split in two instructions!
xbt_assert(refcount_ != 0);
refcount_++;
xbt_assert(refcount_ != 0);
refcount_++;
+ XBT_CDEBUG(simix_network, "%p->refcount++ ~> %d", this, (int)refcount_);
+ if (XBT_LOG_ISENABLED(simix_network, xbt_log_priority_trace))
+ xbt_backtrace_display_current();
}
void ActivityImpl::unref()
{
}
void ActivityImpl::unref()
{
+ XBT_CDEBUG(simix_network, "%p->refcount-- ~> %d", this, ((int)refcount_) - 1);
xbt_assert(refcount_ > 0,
"This activity has a negative refcount! You can only call test() or wait() once per activity.");
refcount_--;
xbt_assert(refcount_ > 0,
"This activity has a negative refcount! You can only call test() or wait() once per activity.");
refcount_--;
- if (refcount_ == 0)
+ if (XBT_LOG_ISENABLED(simix_network, xbt_log_priority_trace))
+ xbt_backtrace_display_current();
+ if (refcount_ <= 0)
delete this;
}
delete this;
}