Add close() call
authorteodor <teodor>
Thu, 26 Oct 2006 15:39:25 +0000 (15:39 +0000)
committerteodor <teodor>
Thu, 26 Oct 2006 15:39:25 +0000 (15:39 +0000)
ftsbench.c
ftsbench.h
mysqldriver.c
pgdriver.c

index f577336..da6a4b0 100644 (file)
@@ -280,6 +280,7 @@ main(int argn, char *argv[]) {
                fflush(stdout);
                db->finishCreateScheme(db);
                printf("done\n");
+               db->Close(db);
        } else {
                ftsDB   **dbs = initConnections(rdbms, nclients, dbname);
                pthread_t       *tid = (pthread_t*)malloc( sizeof(pthread_t) * nclients);
@@ -345,8 +346,10 @@ main(int argn, char *argv[]) {
                elapsed = elapsedtime(&begin);
                pthread_mutex_unlock( &mutexFinish );
 
-               for(i=0;i<nclients;i++)
+               for(i=0;i<nclients;i++) {
                        pthread_join(tid[i], NULL);
+                       dbs[i]->Close(dbs[i]);
+               }
 
                printf("\r%d(%.02f%%) queries proceed\n", total, (100.0*(float)total)/(nclients * n));
                printf("Total time: %.02f sec, Queries per second: %.02f\n", elapsed, total/elapsed);
index 5c2ba2e..9037333 100644 (file)
@@ -55,6 +55,7 @@ typedef struct ftsDB {
        void                    (*startCreateScheme)(struct ftsDB*, int);
        void                    (*finishCreateScheme)(struct ftsDB*);
        void                    (*InsertRow)(struct ftsDB*, int, char*);
+       void                    (*Close)(struct ftsDB*);
 
        /* stats */
        pthread_mutex_t nqueryMutex;
index be64aa4..034a37a 100644 (file)
@@ -215,6 +215,13 @@ InsertRow(ftsDB *adb, int id, char *txt) {
        }
 }
 
+static void
+Close(ftsDB* adb) {  
+    ftsMY *db = (ftsMY*)adb;
+
+       mysql_close(db->conn);
+}
+
 ftsDB* 
 MYInit(char * connstr) {
        ftsMY   *db = (ftsMY*)malloc(sizeof(ftsMY));
@@ -232,6 +239,7 @@ MYInit(char * connstr) {
        db->db.startCreateScheme = startCreateScheme;
        db->db.finishCreateScheme = finishCreateScheme;
        db->db.InsertRow = InsertRow;
+       db->db.Close = Close;
        
        return (ftsDB*)db;
 }
index 1ee408a..0a373b6 100644 (file)
@@ -415,6 +415,13 @@ InsertRow(ftsDB* adb, int id, char *txt) {
        db->db.nquery++;
 }
 
+static void 
+Close(ftsDB* adb) {
+       ftsPG *db = (ftsPG*)adb;
+
+       PQfinish(db->conn);
+}
+
 ftsDB* 
 PGInit(char * connstr) {
        ftsPG   *db = (ftsPG*)malloc(sizeof(ftsPG));
@@ -436,6 +443,7 @@ PGInit(char * connstr) {
        db->db.startCreateScheme = startCreateScheme;
        db->db.finishCreateScheme = finishCreateScheme;
        db->db.InsertRow = InsertRow;
+       db->db.Close = Close;
        db->socket = PQsocket(db->conn);
        if ( db->socket < 0 ) {
                fprintf(stderr,"Socket error\n");