diff options
Diffstat (limited to 'libs/ardour/ardour')
27 files changed, 121 insertions, 118 deletions
diff --git a/libs/ardour/ardour/ardour.h b/libs/ardour/ardour/ardour.h index 3308266f2f..fee6c601a2 100644 --- a/libs/ardour/ardour/ardour.h +++ b/libs/ardour/ardour/ardour.h @@ -26,14 +26,11 @@ #include <signal.h> #include <pbd/error.h> -#include <pbd/lockmonitor.h> #include <pbd/failed_constructor.h> #include <ardour/configuration.h> #include <ardour/types.h> -using namespace PBD; - namespace MIDI { class MachineControl; class Port; diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h index 36dbbd1dbe..bbd7001100 100644 --- a/libs/ardour/ardour/audioengine.h +++ b/libs/ardour/ardour/audioengine.h @@ -28,7 +28,9 @@ #include <string> #include <sigc++/signal.h> -#include <pthread.h> + +#include <glibmm/thread.h> + #include <ardour/ardour.h> #include <jack/jack.h> #include <jack/transport.h> @@ -59,7 +61,7 @@ class AudioEngine : public sigc::trackable int start (); bool running() const { return _running; } - PBD::NonBlockingLock& process_lock() { return _process_lock; } + Glib::Mutex& process_lock() { return _process_lock; } jack_nframes_t frame_rate(); jack_nframes_t frames_per_cycle(); @@ -185,10 +187,10 @@ class AudioEngine : public sigc::trackable ARDOUR::Session *session; jack_client_t *_jack; std::string jack_client_name; - PBD::NonBlockingLock port_lock; - PBD::NonBlockingLock _process_lock; - PBD::Lock session_remove_lock; - pthread_cond_t session_removed; + Glib::Mutex port_lock; + Glib::Mutex _process_lock; + Glib::Mutex session_remove_lock; + Glib::Cond session_removed; bool session_remove_pending; bool _running; bool _has_run; @@ -202,8 +204,6 @@ class AudioEngine : public sigc::trackable sigc::slot<int,jack_nframes_t> freewheel_action; bool reconnect_on_halt; int _usecs_per_cycle; - jack_nframes_t last_meter_point; - jack_nframes_t meter_interval; typedef std::set<Port*> Ports; Ports ports; @@ -237,10 +237,10 @@ class AudioEngine : public sigc::trackable int connect_to_jack (std::string client_name); - static void* _meter_thread (void* arg); - void* meter_thread (); - pthread_t meter_thread_id; - void maybe_start_metering_thread (); + void meter_thread (); + void start_metering_thread (); + Glib::Thread* m_meter_thread; + gint m_meter_exit; }; }; /* namespace ARDOUR */ diff --git a/libs/ardour/ardour/auditioner.h b/libs/ardour/ardour/auditioner.h index b79620eaa2..d5d4063dda 100644 --- a/libs/ardour/ardour/auditioner.h +++ b/libs/ardour/ardour/auditioner.h @@ -22,10 +22,8 @@ #define __ardour_auditioner_h__ #include <string> -#include <pthread.h> -#include <pbd/lockmonitor.h> -#include <pbd/atomic.h> +#include <glibmm/thread.h> #include <ardour/ardour.h> #include <ardour/audio_track.h> @@ -50,16 +48,16 @@ class Auditioner : public AudioTrack int play_audition (jack_nframes_t nframes); void cancel_audition () { - atomic_set (&_active, 0); + g_atomic_int_set (&_active, 0); } - bool active() const { return atomic_read (&_active); } + bool active() const { return g_atomic_int_get (&_active); } private: AudioRegion *the_region; jack_nframes_t current_frame; - atomic_t _active; - PBD::Lock lock; + gint _active; + Glib::Mutex lock; jack_nframes_t length; void drop_ports (); diff --git a/libs/ardour/ardour/automation_event.h b/libs/ardour/ardour/automation_event.h index f26828a114..78daa531dd 100644 --- a/libs/ardour/ardour/automation_event.h +++ b/libs/ardour/ardour/automation_event.h @@ -26,7 +26,7 @@ #include <cmath> #include <sigc++/signal.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> #include <pbd/undo.h> #include <pbd/xml++.h> #include <ardour/ardour.h> @@ -144,7 +144,7 @@ class AutomationList : public StateManager std::pair<AutomationList::iterator,AutomationList::iterator> control_points_adjacent (double when); template<class T> void apply_to_points (T& obj, void (T::*method)(const AutomationList&)) { - LockMonitor lm (lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (lock); (obj.*method)(*this); } @@ -157,13 +157,13 @@ class AutomationList : public StateManager double get_max_xval() const { return max_xval; } double eval (double where) { - LockMonitor lm (lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (lock); return unlocked_eval (where); } double rt_safe_eval (double where, bool& ok) { - TentativeLockMonitor lm (lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (lock, Glib::TRY_LOCK); if ((ok = lm.locked())) { return unlocked_eval (where); @@ -186,7 +186,7 @@ class AutomationList : public StateManager }; AutomationEventList events; - mutable PBD::NonBlockingLock lock; + mutable Glib::Mutex lock; bool _frozen; bool changed_when_thawed; bool _dirty; diff --git a/libs/ardour/ardour/connection.h b/libs/ardour/ardour/connection.h index b33af9cb21..899bffc06a 100644 --- a/libs/ardour/ardour/connection.h +++ b/libs/ardour/ardour/connection.h @@ -24,7 +24,7 @@ #include <vector> #include <string> #include <sigc++/signal.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> #include <ardour/stateful.h> using std::vector; @@ -67,7 +67,7 @@ class Connection : public Stateful, public sigc::trackable { Connection (const XMLNode&); private: - mutable PBD::Lock port_lock; + mutable Glib::Mutex port_lock; vector<PortList> _ports; string _name; bool _sysdep; diff --git a/libs/ardour/ardour/control_protocol_manager.h b/libs/ardour/ardour/control_protocol_manager.h index 42b5a69a48..03b21a299c 100644 --- a/libs/ardour/ardour/control_protocol_manager.h +++ b/libs/ardour/ardour/control_protocol_manager.h @@ -6,7 +6,7 @@ #include <sigc++/sigc++.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> #include <ardour/stateful.h> @@ -52,7 +52,7 @@ struct ControlProtocolInfo { static ControlProtocolManager* _instance; Session* _session; - PBD::Lock protocols_lock; + Glib::Mutex protocols_lock; std::list<ControlProtocol*> control_protocols; void drop_session (); diff --git a/libs/ardour/ardour/coreaudio_source.h b/libs/ardour/ardour/coreaudio_source.h index 4193623006..736ea32df7 100644 --- a/libs/ardour/ardour/coreaudio_source.h +++ b/libs/ardour/ardour/coreaudio_source.h @@ -40,7 +40,7 @@ class CoreAudioSource : public ExternalSource { mutable float *tmpbuf; mutable jack_nframes_t tmpbufsize; - mutable PBD::Lock _tmpbuf_lock; + mutable Glib::Mutex _tmpbuf_lock; void init (const string &str, bool build_peak); }; diff --git a/libs/ardour/ardour/curve.h b/libs/ardour/ardour/curve.h index 1c6a4c5bc4..ede060e1cb 100644 --- a/libs/ardour/ardour/curve.h +++ b/libs/ardour/ardour/curve.h @@ -23,11 +23,10 @@ #include <sys/types.h> #include <sigc++/signal.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> #include <pbd/undo.h> #include <list> #include <algorithm> -#include <pthread.h> #include <ardour/automation_event.h> namespace ARDOUR { diff --git a/libs/ardour/ardour/diskstream.h b/libs/ardour/ardour/diskstream.h index 8838177f14..a017b7af9b 100644 --- a/libs/ardour/ardour/diskstream.h +++ b/libs/ardour/ardour/diskstream.h @@ -33,7 +33,7 @@ #include <pbd/fastlog.h> #include <pbd/ringbufferNPT.h> -#include <pbd/atomic.h> + #include <ardour/ardour.h> #include <ardour/configuration.h> @@ -115,7 +115,7 @@ class DiskStream : public Stateful, public sigc::trackable } void set_record_enabled (bool yn, void *src); - bool record_enabled() const { return atomic_read (&_record_enabled); } + bool record_enabled() const { return g_atomic_int_get (&_record_enabled); } void punch_in (); void punch_out (); @@ -320,7 +320,7 @@ class DiskStream : public Stateful, public sigc::trackable uint32_t _n_channels; id_t _id; - atomic_t _record_enabled; + gint _record_enabled; AudioPlaylist* _playlist; double _visible_speed; double _actual_speed; @@ -365,7 +365,7 @@ class DiskStream : public Stateful, public sigc::trackable AlignStyle _persistent_alignment_style; bool first_input_change; - PBD::NonBlockingLock state_lock; + Glib::Mutex state_lock; jack_nframes_t scrub_start; jack_nframes_t scrub_buffer_size; @@ -404,7 +404,7 @@ class DiskStream : public Stateful, public sigc::trackable }; vector<CaptureInfo*> capture_info; - PBD::Lock capture_info_lock; + Glib::Mutex capture_info_lock; void init (Flag); diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h index 8321e9afda..c80a7abfaa 100644 --- a/libs/ardour/ardour/io.h +++ b/libs/ardour/ardour/io.h @@ -27,10 +27,11 @@ #include <sigc++/signal.h> #include <jack/jack.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> + #include <pbd/fastlog.h> #include <pbd/undo.h> -#include <pbd/atomic.h> + #include <midi++/controllable.h> #include <ardour/ardour.h> @@ -205,7 +206,15 @@ class IO : public Stateful, public ARDOUR::StateManager } } - static sigc::signal<void> Meter; + static void update_meters(); + +private: + + static sigc::signal<void> Meter; + static Glib::StaticMutex m_meter_signal_lock; + sigc::connection m_meter_connection; + +public: /* automation */ @@ -261,7 +270,7 @@ class IO : public Stateful, public ARDOUR::StateManager int ports_became_legal (); private: - mutable PBD::Lock io_lock; + mutable Glib::Mutex io_lock; protected: Session& _session; @@ -269,7 +278,7 @@ class IO : public Stateful, public ARDOUR::StateManager gain_t _gain; gain_t _effective_gain; gain_t _desired_gain; - PBD::NonBlockingLock declick_lock; + Glib::Mutex declick_lock; vector<Port*> _outputs; vector<Port*> _inputs; vector<float> _peak_power; @@ -322,7 +331,7 @@ class IO : public Stateful, public ARDOUR::StateManager jack_nframes_t last_automation_snapshot; static jack_nframes_t _automation_interval; - AutoState _gain_automation_state; + AutoState _gain_automation_state; AutoStyle _gain_automation_style; bool apply_gain_automation; @@ -331,7 +340,7 @@ class IO : public Stateful, public ARDOUR::StateManager int save_automation (const string&); int load_automation (const string&); - PBD::NonBlockingLock automation_lock; + Glib::Mutex automation_lock; /* AudioTrack::deprecated_use_diskstream_connections() needs these */ diff --git a/libs/ardour/ardour/location.h b/libs/ardour/ardour/location.h index bb744c95be..75f4c5d12a 100644 --- a/libs/ardour/ardour/location.h +++ b/libs/ardour/ardour/location.h @@ -27,10 +27,10 @@ #include <map> #include <sys/types.h> -#include <pthread.h> #include <sigc++/signal.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> + #include <pbd/undo.h> #include "ardour.h" @@ -168,12 +168,12 @@ class Locations : public Stateful, public StateManager sigc::signal<void,Location*> removed; template<class T> void apply (T& obj, void (T::*method)(LocationList&)) { - LockMonitor lm (lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (lock); (obj.*method)(locations); } template<class T1, class T2> void apply (T1& obj, void (T1::*method)(LocationList&, T2& arg), T2& arg) { - LockMonitor lm (lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (lock); (obj.*method)(locations, arg); } @@ -190,7 +190,7 @@ class Locations : public Stateful, public StateManager LocationList locations; Location *current_location; - mutable PBD::Lock lock; + mutable Glib::Mutex lock; int set_current_unlocked (Location *); void location_changed (Location*); diff --git a/libs/ardour/ardour/logcurve.h b/libs/ardour/ardour/logcurve.h index 84911b0369..e65be55772 100644 --- a/libs/ardour/ardour/logcurve.h +++ b/libs/ardour/ardour/logcurve.h @@ -22,7 +22,7 @@ #define __ardour_logcurve_h__ #include <pbd/fastlog.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> namespace ARDOUR { @@ -94,7 +94,7 @@ class LogCurve { } void set_length (uint32_t len) { l = len; } - mutable PBD::NonBlockingLock lock; + mutable Glib::Mutex lock; protected: float a; diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index c6cb65efc5..02aaa5c5c9 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -28,8 +28,9 @@ #include <sys/stat.h> +#include <glib.h> + #include <sigc++/signal.h> -#include <pbd/atomic.h> #include <pbd/undo.h> #include <ardour/ardour.h> @@ -169,9 +170,9 @@ class Playlist : public Stateful, public StateManager { RegionList regions; string _name; Session& _session; - atomic_t block_notifications; - atomic_t ignore_state_changes; - mutable PBD::NonBlockingLock region_lock; + gint block_notifications; + gint ignore_state_changes; + mutable Glib::Mutex region_lock; RegionList pending_removals; RegionList pending_adds; RegionList pending_bounds; @@ -197,8 +198,8 @@ class Playlist : public Stateful, public StateManager { void init (bool hide); bool holding_state () const { - return atomic_read (&block_notifications) != 0 || - atomic_read (&ignore_state_changes) != 0; + return g_atomic_int_get (&block_notifications) != 0 || + g_atomic_int_get (&ignore_state_changes) != 0; } /* prevent the compiler from ever generating these */ diff --git a/libs/ardour/ardour/redirect.h b/libs/ardour/ardour/redirect.h index b370589079..ede55a1d80 100644 --- a/libs/ardour/ardour/redirect.h +++ b/libs/ardour/ardour/redirect.h @@ -27,7 +27,8 @@ #include <map> #include <sigc++/signal.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> + #include <pbd/undo.h> #include <ardour/ardour.h> @@ -131,7 +132,7 @@ class Redirect : public IO map<uint32_t,AutomationList*> parameter_automation; set<uint32_t> visible_parameter_automation; - mutable PBD::NonBlockingLock _automation_lock; + mutable Glib::Mutex _automation_lock; void can_automate (uint32_t); set<uint32_t> can_automate_list; diff --git a/libs/ardour/ardour/region.h b/libs/ardour/ardour/region.h index 5af5a660c1..3c94dad6fd 100644 --- a/libs/ardour/ardour/region.h +++ b/libs/ardour/ardour/region.h @@ -221,7 +221,7 @@ class Region : public Stateful, public StateManager string _name; mutable RegionEditState _first_edit; int _frozen; - PBD::Lock lock; + Glib::Mutex lock; ARDOUR::id_t _id; ARDOUR::Playlist* _playlist; mutable uint32_t _read_data_count; // modified in read() diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h index 8a707eb902..5699d9ef14 100644 --- a/libs/ardour/ardour/route.h +++ b/libs/ardour/ardour/route.h @@ -27,11 +27,8 @@ #include <map> #include <string> -#include <pthread.h> - -#include <pbd/atomic.h> #include <pbd/fastlog.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> #include <pbd/xml++.h> #include <pbd/undo.h> #include <midi++/controllable.h> @@ -142,14 +139,14 @@ class Route : public IO void flush_redirects (); template<class T> void foreach_redirect (T *obj, void (T::*func)(Redirect *)) { - RWLockMonitor lm (redirect_lock, false, __LINE__, __FILE__); + Glib::RWLock::ReaderLock lm (redirect_lock); for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) { (obj->*func) (*i); } } Redirect *nth_redirect (uint32_t n) { - RWLockMonitor lm (redirect_lock, false, __LINE__, __FILE__); + Glib::RWLock::ReaderLock lm (redirect_lock); RedirectList::iterator i; for (i = _redirects.begin(); i != _redirects.end() && n; ++i, --n); if (i == _redirects.end()) { @@ -294,9 +291,9 @@ class Route : public IO jack_nframes_t _roll_delay; jack_nframes_t _own_latency; RedirectList _redirects; - PBD::NonBlockingRWLock redirect_lock; + Glib::RWLock redirect_lock; IO *_control_outs; - PBD::NonBlockingLock control_outs_lock; + Glib::Mutex control_outs_lock; RouteGroup *_edit_group; RouteGroup *_mix_group; std::string _comment; diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 0d968fcff1..c78a53135a 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -31,9 +31,9 @@ #include <sndfile.h> +#include <glibmm/thread.h> + #include <pbd/error.h> -#include <pbd/atomic.h> -#include <pbd/lockmonitor.h> #include <pbd/undo.h> #include <pbd/pool.h> @@ -274,7 +274,7 @@ class Session : public sigc::trackable, public Stateful typedef list<DiskStream *> DiskStreamList; Session::DiskStreamList disk_streams() const { - RWLockMonitor lm (diskstream_lock, false, __LINE__, __FILE__); + Glib::RWLock::ReaderLock lm (diskstream_lock); return diskstreams; /* XXX yes, force a copy */ } @@ -284,7 +284,7 @@ class Session : public sigc::trackable, public Stateful typedef list<Route *> RouteList; RouteList get_routes() const { - RWLockMonitor rlock (route_lock, false, __LINE__, __FILE__); + Glib::RWLock::ReaderLock rlock (route_lock); return routes; /* XXX yes, force a copy */ } @@ -310,7 +310,7 @@ class Session : public sigc::trackable, public Stateful } RecordState record_status() const { - return (RecordState) atomic_read (&_record_status); + return (RecordState) g_atomic_int_get (&_record_status); } bool actively_recording () { @@ -1004,12 +1004,12 @@ class Session : public sigc::trackable, public Stateful typedef void (Session::*process_function_type)(jack_nframes_t); AudioEngine &_engine; - atomic_t processing_prohibited; + gint processing_prohibited; process_function_type process_function; process_function_type last_process_function; jack_nframes_t _current_frame_rate; int transport_sub_state; - atomic_t _record_status; + gint _record_status; jack_nframes_t _transport_frame; Location* end_location; Location* start_location; @@ -1166,14 +1166,14 @@ class Session : public sigc::trackable, public Stateful bool pending_abort; bool pending_auto_loop; - Sample* butler_mixdown_buffer; - float* butler_gain_buffer; - pthread_t butler_thread; - PBD::NonBlockingLock butler_request_lock; - pthread_cond_t butler_paused; - bool butler_should_run; - atomic_t butler_should_do_transport_work; - int butler_request_pipe[2]; + Sample* butler_mixdown_buffer; + float* butler_gain_buffer; + pthread_t butler_thread; + Glib::Mutex butler_request_lock; + Glib::Cond butler_paused; + bool butler_should_run; + gint butler_should_do_transport_work; + int butler_request_pipe[2]; struct ButlerRequest { enum Type { @@ -1417,10 +1417,10 @@ class Session : public sigc::trackable, public Stateful static MultiAllocSingleReleasePool pool; }; - PBD::Lock midi_lock; + Glib::Mutex midi_lock; pthread_t midi_thread; int midi_request_pipe[2]; - atomic_t butler_active; + gint butler_active; RingBuffer<MIDIRequest*> midi_requests; int start_midi_thread (); @@ -1471,7 +1471,7 @@ class Session : public sigc::trackable, public Stateful /* disk-streams */ DiskStreamList diskstreams; - mutable PBD::NonBlockingRWLock diskstream_lock; + mutable Glib::RWLock diskstream_lock; uint32_t dstream_buffer_size; void add_diskstream (DiskStream*); int load_diskstreams (const XMLNode&); @@ -1479,7 +1479,7 @@ class Session : public sigc::trackable, public Stateful /* routes stuff */ RouteList routes; - mutable PBD::NonBlockingRWLock route_lock; + mutable Glib::RWLock route_lock; void add_route (Route*); uint32_t destructive_index; @@ -1502,7 +1502,7 @@ class Session : public sigc::trackable, public Stateful /* REGION MANAGEMENT */ - mutable PBD::Lock region_lock; + mutable Glib::Mutex region_lock; typedef map<ARDOUR::id_t,AudioRegion *> AudioRegionList; AudioRegionList audio_regions; @@ -1515,7 +1515,7 @@ class Session : public sigc::trackable, public Stateful /* SOURCES */ - mutable PBD::Lock source_lock; + mutable Glib::Mutex source_lock; typedef std::map<id_t, Source *> SourceList; SourceList sources; @@ -1529,7 +1529,7 @@ class Session : public sigc::trackable, public Stateful /* PLAYLISTS */ - mutable PBD::Lock playlist_lock; + mutable Glib::Mutex playlist_lock; typedef set<Playlist *> PlaylistList; PlaylistList playlists; PlaylistList unused_playlists; @@ -1547,7 +1547,7 @@ class Session : public sigc::trackable, public Stateful /* NAMED SELECTIONS */ - mutable PBD::Lock named_selection_lock; + mutable Glib::Mutex named_selection_lock; typedef set<NamedSelection *> NamedSelectionList; NamedSelectionList named_selections; @@ -1607,7 +1607,7 @@ class Session : public sigc::trackable, public Stateful vector<space_and_path> session_dirs; vector<space_and_path>::iterator last_rr_session_dir; uint32_t _total_free_4k_blocks; - PBD::Lock space_lock; + Glib::Mutex space_lock; static const char* sound_dir_name; static const char* tape_dir_name; @@ -1618,15 +1618,15 @@ class Session : public sigc::trackable, public Stateful int ensure_sound_dir (string, string&); void refresh_disk_space (); - atomic_t _playback_load; - atomic_t _capture_load; - atomic_t _playback_load_min; - atomic_t _capture_load_min; + gint _playback_load; + gint _capture_load; + gint _playback_load_min; + gint _capture_load_min; /* I/O Connections */ typedef list<Connection *> ConnectionList; - mutable PBD::Lock connection_lock; + mutable Glib::Mutex connection_lock; ConnectionList _connections; int load_connections (const XMLNode&); @@ -1685,7 +1685,7 @@ class Session : public sigc::trackable, public Stateful Sample* click_emphasis_data; jack_nframes_t click_length; jack_nframes_t click_emphasis_length; - mutable PBD::NonBlockingRWLock click_lock; + mutable Glib::RWLock click_lock; static const Sample default_click[]; static const jack_nframes_t default_click_length; diff --git a/libs/ardour/ardour/session_connection.h b/libs/ardour/ardour/session_connection.h index caa20ed387..addc896b0b 100644 --- a/libs/ardour/ardour/session_connection.h +++ b/libs/ardour/ardour/session_connection.h @@ -29,7 +29,7 @@ namespace ARDOUR { template<class T> void Session::foreach_connection (T *obj, void (T::*func)(Connection *)) { - LockMonitor lm (connection_lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (connection_lock); for (ConnectionList::iterator i = _connections.begin(); i != _connections.end(); i++) { (obj->*func) (*i); } diff --git a/libs/ardour/ardour/session_diskstream.h b/libs/ardour/ardour/session_diskstream.h index 24693c5793..3c888c92c3 100644 --- a/libs/ardour/ardour/session_diskstream.h +++ b/libs/ardour/ardour/session_diskstream.h @@ -29,7 +29,7 @@ namespace ARDOUR { template<class T> void Session::foreach_diskstream (T *obj, void (T::*func)(DiskStream&)) { - RWLockMonitor lm (diskstream_lock, false, __LINE__, __FILE__); + Glib::RWLock::ReaderLock lm (diskstream_lock); for (DiskStreamList::iterator i = diskstreams.begin(); i != diskstreams.end(); i++) { if (!(*i)->hidden()) { (obj->*func) (**i); diff --git a/libs/ardour/ardour/session_playlist.h b/libs/ardour/ardour/session_playlist.h index 925a60182a..6f1b8dbd12 100644 --- a/libs/ardour/ardour/session_playlist.h +++ b/libs/ardour/ardour/session_playlist.h @@ -29,7 +29,7 @@ namespace ARDOUR { template<class T> void Session::foreach_playlist (T *obj, void (T::*func)(Playlist *)) { - LockMonitor lm (playlist_lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (playlist_lock); for (PlaylistList::iterator i = playlists.begin(); i != playlists.end(); i++) { if (!(*i)->hidden()) { (obj->*func) (*i); diff --git a/libs/ardour/ardour/session_region.h b/libs/ardour/ardour/session_region.h index 16580d8e73..13d88a9aa4 100644 --- a/libs/ardour/ardour/session_region.h +++ b/libs/ardour/ardour/session_region.h @@ -8,7 +8,7 @@ namespace ARDOUR { template<class T> void Session::foreach_audio_region (T *obj, void (T::*func)(AudioRegion *)) { - LockMonitor lm (region_lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (region_lock); for (AudioRegionList::iterator i = audio_regions.begin(); i != audio_regions.end(); i++) { (obj->*func) ((*i).second); } diff --git a/libs/ardour/ardour/session_route.h b/libs/ardour/ardour/session_route.h index f3c8e3f5fb..afe78b394e 100644 --- a/libs/ardour/ardour/session_route.h +++ b/libs/ardour/ardour/session_route.h @@ -23,7 +23,8 @@ #include <iostream> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> + #include <ardour/session.h> #include <ardour/route.h> @@ -35,7 +36,7 @@ Session::foreach_route (T *obj, void (T::*func)(Route&)) RouteList public_order; { - RWLockMonitor lm (route_lock, false, __LINE__, __FILE__); + Glib::RWLock::ReaderLock lm (route_lock); public_order = routes; } @@ -53,7 +54,7 @@ Session::foreach_route (T *obj, void (T::*func)(Route*)) RouteList public_order; { - RWLockMonitor lm (route_lock, false, __LINE__, __FILE__); + Glib::RWLock::ReaderLock lm (route_lock); public_order = routes; } @@ -72,7 +73,7 @@ Session::foreach_route (T *obj, void (T::*func)(Route&, A), A arg1) RouteList public_order; { - RWLockMonitor lm (route_lock, false, __LINE__, __FILE__); + Glib::RWLock::ReaderLock lm (route_lock); public_order = routes; } diff --git a/libs/ardour/ardour/session_selection.h b/libs/ardour/ardour/session_selection.h index a1dd31d7ff..a110c2c3da 100644 --- a/libs/ardour/ardour/session_selection.h +++ b/libs/ardour/ardour/session_selection.h @@ -29,7 +29,7 @@ namespace ARDOUR { template<class T> void Session::foreach_named_selection (T& obj, void (T::*func)(NamedSelection&)) { - LockMonitor lm (named_selection_lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (named_selection_lock); for (NamedSelectionList::iterator i = named_selections.begin(); i != named_selections.end(); i++) { (obj.*func) (**i); } diff --git a/libs/ardour/ardour/slave.h b/libs/ardour/ardour/slave.h index 90e63aed83..0079c10e0a 100644 --- a/libs/ardour/ardour/slave.h +++ b/libs/ardour/ardour/slave.h @@ -25,7 +25,6 @@ #include <jack/jack.h> -#include <pthread.h> #include <sigc++/signal.h> #include <ardour/ardour.h> #include <midi++/parser.h> diff --git a/libs/ardour/ardour/sndfilesource.h b/libs/ardour/ardour/sndfilesource.h index 2bd6042ec2..5d11c9ef09 100644 --- a/libs/ardour/ardour/sndfilesource.h +++ b/libs/ardour/ardour/sndfilesource.h @@ -43,7 +43,7 @@ class SndFileSource : public ExternalSource { mutable float *tmpbuf; mutable jack_nframes_t tmpbufsize; - mutable PBD::Lock _tmpbuf_lock; + mutable Glib::Mutex _tmpbuf_lock; void init (const string &str, bool build_peak); }; diff --git a/libs/ardour/ardour/source.h b/libs/ardour/ardour/source.h index 2eee7a7634..3781950fbf 100644 --- a/libs/ardour/ardour/source.h +++ b/libs/ardour/ardour/source.h @@ -25,10 +25,12 @@ #include <vector> #include <string> -#include <time.h> +#include <ctime> #include <sigc++/signal.h> +#include <glibmm/thread.h> + #include <ardour/ardour.h> #include <ardour/stateful.h> #include <pbd/xml++.h> @@ -125,7 +127,7 @@ class Source : public Stateful, public sigc::trackable string _name; uint32_t _use_cnt; bool _peaks_built; - mutable PBD::Lock _lock; + mutable Glib::Mutex _lock; jack_nframes_t _length; bool next_peak_clear_should_notify; string peakpath; @@ -156,7 +158,7 @@ class Source : public Stateful, public sigc::trackable }; static vector<Source*> pending_peak_sources; - static PBD::Lock pending_peak_sources_lock; + static Glib::StaticMutex pending_peak_sources_lock; static void queue_for_peaks (Source&); static void clear_queue_for_peaks (); diff --git a/libs/ardour/ardour/tempo.h b/libs/ardour/ardour/tempo.h index 2f04f603e7..13e8eb6348 100644 --- a/libs/ardour/ardour/tempo.h +++ b/libs/ardour/ardour/tempo.h @@ -25,8 +25,7 @@ #include <string> #include <vector> #include <cmath> -#include <pthread.h> -#include <pbd/lockmonitor.h> +#include <glibmm/thread.h> #include <pbd/undo.h> #include <sigc++/signal.h> @@ -198,7 +197,7 @@ class TempoMap : public Stateful, public StateManager { typedef vector<BBTPoint> BBTPointList; template<class T> void apply_with_metrics (T& obj, void (T::*method)(const Metrics&)) { - LockMonitor lm (lock, __LINE__, __FILE__); + Glib::Mutex::Lock lm (lock); (obj.*method)(*metrics); } @@ -285,7 +284,7 @@ class TempoMap : public Stateful, public StateManager { jack_nframes_t last_bbt_when; bool last_bbt_valid; BBT_Time last_bbt; - mutable PBD::Lock lock; + mutable Glib::Mutex lock; void timestamp_metrics (); |