projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use hyphen for XML property names
[ardour.git]
/
libs
/
pbd
/
pbd
/
signals.h
diff --git
a/libs/pbd/pbd/signals.h
b/libs/pbd/pbd/signals.h
index 42727b7adce6e9aef184d636de38dd336d5911f2..df4c9cef29331c5d3b0477143d932e0c7fc4df8e 100644
(file)
--- a/
libs/pbd/pbd/signals.h
+++ b/
libs/pbd/pbd/signals.h
@@
-78,7
+78,12
@@
protected:
class LIBPBD_API Connection : public boost::enable_shared_from_this<Connection>
{
public:
class LIBPBD_API Connection : public boost::enable_shared_from_this<Connection>
{
public:
- Connection (SignalBase* b) : _signal (b) {}
+ Connection (SignalBase* b, PBD::EventLoop::InvalidationRecord* ir) : _signal (b), _invalidation_record (ir)
+ {
+ if (_invalidation_record) {
+ _invalidation_record->ref ();
+ }
+ }
void disconnect ()
{
void disconnect ()
{
@@
-89,15
+94,26
@@
public:
}
}
}
}
+ void disconnected ()
+ {
+ if (_invalidation_record) {
+ _invalidation_record->unref ();
+ }
+ }
+
void signal_going_away ()
{
Glib::Threads::Mutex::Lock lm (_mutex);
void signal_going_away ()
{
Glib::Threads::Mutex::Lock lm (_mutex);
+ if (_invalidation_record) {
+ _invalidation_record->unref ();
+ }
_signal = 0;
}
private:
Glib::Threads::Mutex _mutex;
SignalBase* _signal;
_signal = 0;
}
private:
Glib::Threads::Mutex _mutex;
SignalBase* _signal;
+ PBD::EventLoop::InvalidationRecord* _invalidation_record;
};
template<typename R>
};
template<typename R>