13
0

be sure to check the return from the RCU mgr ::update method() inside TempoMap::update()

This commit is contained in:
Paul Davis 2021-02-21 23:37:45 -07:00
parent 9a53ef4020
commit beaa1b3fcb
2 changed files with 7 additions and 3 deletions

View File

@ -3034,10 +3034,12 @@ TempoMap::init ()
fetch (); fetch ();
} }
void int
TempoMap::update (TempoMap::SharedPtr m) TempoMap::update (TempoMap::SharedPtr m)
{ {
_map_mgr.update (m); if (!_map_mgr.update (m)) {
return -1;
}
/* update thread local map pointer in the calling thread */ /* update thread local map pointer in the calling thread */
update_thread_tempo_map (); update_thread_tempo_map ();
@ -3046,6 +3048,8 @@ TempoMap::update (TempoMap::SharedPtr m)
_tempo_map_p->dump (cerr); _tempo_map_p->dump (cerr);
MapChanged (); /* EMIT SIGNAL */ MapChanged (); /* EMIT SIGNAL */
return 0;
} }
void void

View File

@ -655,7 +655,7 @@ class LIBTEMPORAL_API TempoMap : public PBD::StatefulDestructible
static SharedPtr write_copy() { return _map_mgr.write_copy(); } static SharedPtr write_copy() { return _map_mgr.write_copy(); }
static void fetch_writable() { _tempo_map_p = write_copy(); } static void fetch_writable() { _tempo_map_p = write_copy(); }
static void update (SharedPtr m); static int update (SharedPtr m);
static void abort_update (); static void abort_update ();
/* and now on with the rest of the show ... */ /* and now on with the rest of the show ... */