From a3e566c4d3631076e29f3651554603184b6351a7 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 17 May 2009 01:34:10 +0200 Subject: Gnulib durch boost ersetzt --- src/Net/Connection.h | 38 +++++++++++++------------------------- 1 file changed, 13 insertions(+), 25 deletions(-) (limited to 'src/Net/Connection.h') diff --git a/src/Net/Connection.h b/src/Net/Connection.h index 1176f92..1a3e72b 100644 --- a/src/Net/Connection.h +++ b/src/Net/Connection.h @@ -30,7 +30,8 @@ #include #include -#include "glthread/lock.h" +#include +#include #include @@ -63,10 +64,10 @@ class Connection { sigc::slot notify; }; - gl_lock_t receiveLock; + boost::mutex receiveLock; Transmission transR; - gl_lock_t sendLock; + boost::mutex sendLock; std::queue transS; Packet::Data header; @@ -112,7 +113,7 @@ class Connection { uint8_t protVerMax; }; - gl_rwlock_t stateLock; + boost::shared_mutex stateLock; enum State { DISCONNECTED, CONNECT, HANDSHAKE, CONNECTION_HEADER, PACKET_HEADER, PACKET_DATA, DISCONNECT, BYE @@ -151,38 +152,25 @@ class Connection { transR.length = transR.transmitted = 0; transR.data = 0; - gl_rwlock_init(stateLock); - gl_lock_init(sendLock); - gl_lock_init(receiveLock); - gnutls_certificate_allocate_credentials(&x509_cred); } virtual ~Connection(); bool isConnected() { - gl_rwlock_rdlock(stateLock); - bool ret = _isConnected(); - gl_rwlock_unlock(stateLock); - - return ret; + boost::shared_lock lock(stateLock); + return _isConnected(); } bool isConnecting() { - gl_rwlock_rdlock(stateLock); - bool ret = _isConnecting(); - gl_rwlock_unlock(stateLock); - - return ret; + boost::shared_lock lock(stateLock); + return _isConnecting(); } - /*bool isDisconnecting() { - gl_rwlock_rdlock(stateLock); - bool ret = (state == DISCONNECT || state == BYE); - gl_rwlock_unlock(stateLock); - - return ret; - }*/ + bool isDisconnecting() { + boost::shared_lock lock(stateLock); + return _isDisconnecting(); + } const gnutls_datum_t* getCertificate() const { // TODO Thread-safeness -- cgit v1.2.3