Remove spinlock from class SQLite3DB #977

pull/1056/head
René Cannaò 9 years ago
parent 38e5206e0d
commit aa8f0c5c43

@ -2,7 +2,7 @@
#define __CLASS_SQLITE3DB_H
#include "proxysql.h"
#include "cpp.h"
#define PROXYSQL_SQLITE3DB_PTHREAD_MUTEX
class SQLite3_row {
public:
@ -166,7 +166,11 @@ class SQLite3DB {
private:
char *url;
sqlite3 *db;
#ifdef PROXYSQL_SQLITE3DB_PTHREAD_MUTEX
pthread_rwlock_t rwlock;
#else
rwlock_t rwlock;
#endif
public:
char *get_url() const { return url; }
sqlite3 *get_db() const { return db; }

@ -8,7 +8,11 @@ SQLite3DB::SQLite3DB() {
db=NULL;
url=NULL;
assert_on_error=0;
#ifdef PROXYSQL_SQLITE3DB_PTHREAD_MUTEX
pthread_rwlock_init(&rwlock, NULL);
#else
spinlock_rwlock_init(&rwlock);
#endif
}
SQLite3DB::~SQLite3DB() {
@ -217,19 +221,35 @@ bool SQLite3DB::check_and_build_table(char *table_name, char *table_def) {
}
void SQLite3DB::rdlock() {
#ifdef PROXYSQL_SQLITE3DB_PTHREAD_MUTEX
pthread_rwlock_rdlock(&rwlock);
#else
spin_wrlock(&rwlock);
#endif
}
void SQLite3DB::rdunlock() {
#ifdef PROXYSQL_SQLITE3DB_PTHREAD_MUTEX
pthread_rwlock_unlock(&rwlock);
#else
spin_wrunlock(&rwlock);
#endif
}
void SQLite3DB::wrlock() {
#ifdef PROXYSQL_SQLITE3DB_PTHREAD_MUTEX
pthread_rwlock_wrlock(&rwlock);
#else
spin_wrlock(&rwlock);
#endif
}
void SQLite3DB::wrunlock() {
#ifdef PROXYSQL_SQLITE3DB_PTHREAD_MUTEX
pthread_rwlock_unlock(&rwlock);
#else
spin_wrunlock(&rwlock);
#endif
}
int64_t SQLite3_result::raw_checksum() {

Loading…
Cancel
Save