diff options
author | Robin Gareus <robin@gareus.org> | 2015-04-28 22:18:30 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-04-29 00:35:35 +0200 |
commit | f410705c3a3fb53777aa83ee25c470bbee12f1d5 (patch) | |
tree | 8926e4ccb6e8a82604469aa5b8e0cdf9fec6cd11 /libs/ardour/meter.cc | |
parent | 1df7b4ffb627c2b1ffb1eb32fecf5af0ad8ca2ad (diff) |
delegate signal emission to dedicated thread.
This works around abysmal performance (~.15ms) of
boost::function and boost::bind (in PBD::Signal).
The overall load is probably higher but the realtime
thread remains unaffected.
Diffstat (limited to 'libs/ardour/meter.cc')
-rw-r--r-- | libs/ardour/meter.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc index e5fabfc291..dffefd4a58 100644 --- a/libs/ardour/meter.cc +++ b/libs/ardour/meter.cc @@ -209,7 +209,12 @@ PeakMeter::reflect_inputs (const ChanCount& in) current_meters = in; reset_max(); - ConfigurationChanged (in, in); /* EMIT SIGNAL */ + // ConfigurationChanged() postponed +} + +void +PeakMeter::emit_configuration_changed () { + ConfigurationChanged (current_meters, current_meters); /* EMIT SIGNAL */ } void |