diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-08-19 01:04:59 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-08-19 01:29:04 +0100 |
| commit | 6c7489e5d778d3e71065d88a094a7383ba2c117d (patch) | |
| tree | e3f05ad03095d88d297c7d61e03e265d28a97fa3 /src/lib/content.cc | |
| parent | 9a27d60ea7888d300a5a2414a477091428589b82 (diff) | |
Replace May/Done/NotDone signal sets with one signal and extend
this treatment to anything that caused Player::setup_pieces. This should
fix out-of-sequence Player emissions caused by setup_pieces being called
by one thread while the butler is calling pass().
Diffstat (limited to 'src/lib/content.cc')
| -rw-r--r-- | src/lib/content.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/content.cc b/src/lib/content.cc index 8fd36a1d8..ae0b08dcc 100644 --- a/src/lib/content.cc +++ b/src/lib/content.cc @@ -179,10 +179,14 @@ Content::examine (shared_ptr<Job> job) } void -Content::signal_changed (int p) +Content::signal_change (ChangeType c, int p) { try { - emit (boost::bind (boost::ref(Changed), shared_from_this(), p, _change_signals_frequent)); + if (c == CHANGE_TYPE_PENDING || c == CHANGE_TYPE_CANCELLED) { + Change (c, shared_from_this(), p, _change_signals_frequent); + } else { + emit (boost::bind (boost::ref(Change), c, shared_from_this(), p, _change_signals_frequent)); + } } catch (boost::bad_weak_ptr) { /* This must be during construction; never mind */ } |
