summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/ardour.h3
-rw-r--r--libs/ardour/ardour/audioengine.h24
-rw-r--r--libs/ardour/ardour/auditioner.h12
-rw-r--r--libs/ardour/ardour/automation_event.h10
-rw-r--r--libs/ardour/ardour/connection.h4
-rw-r--r--libs/ardour/ardour/control_protocol_manager.h4
-rw-r--r--libs/ardour/ardour/coreaudio_source.h2
-rw-r--r--libs/ardour/ardour/curve.h3
-rw-r--r--libs/ardour/ardour/diskstream.h10
-rw-r--r--libs/ardour/ardour/io.h23
-rw-r--r--libs/ardour/ardour/location.h10
-rw-r--r--libs/ardour/ardour/logcurve.h4
-rw-r--r--libs/ardour/ardour/playlist.h13
-rw-r--r--libs/ardour/ardour/redirect.h5
-rw-r--r--libs/ardour/ardour/region.h2
-rw-r--r--libs/ardour/ardour/route.h13
-rw-r--r--libs/ardour/ardour/session.h60
-rw-r--r--libs/ardour/ardour/session_connection.h2
-rw-r--r--libs/ardour/ardour/session_diskstream.h2
-rw-r--r--libs/ardour/ardour/session_playlist.h2
-rw-r--r--libs/ardour/ardour/session_region.h2
-rw-r--r--libs/ardour/ardour/session_route.h9
-rw-r--r--libs/ardour/ardour/session_selection.h2
-rw-r--r--libs/ardour/ardour/slave.h1
-rw-r--r--libs/ardour/ardour/sndfilesource.h2
-rw-r--r--libs/ardour/ardour/source.h8
-rw-r--r--libs/ardour/ardour/tempo.h7
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 ();