1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-12-15 12:09:09 +03:00

Made IOCoordinator a singleton vs a global.

This commit is contained in:
Patrick LeBlanc
2019-02-01 09:48:25 -06:00
parent 07cc7f9d0e
commit ce8398876a
14 changed files with 26 additions and 25 deletions

View File

@@ -6,8 +6,6 @@
using namespace std;
extern storagemanager::IOCoordinator *ioc;
namespace storagemanager
{

View File

@@ -10,6 +10,12 @@
using namespace std;
namespace
{
storagemanager::IOCoordinator *ioc = NULL;
boost::mutex m;
}
namespace storagemanager
{
@@ -21,6 +27,17 @@ IOCoordinator::~IOCoordinator()
{
}
IOCoordinator * IOCoordinator::get()
{
if (ioc)
return ioc;
boost::mutex::scoped_lock s(m);
if (ioc)
return ioc;
ioc = new IOCoordinator();
return ioc;
}
void IOCoordinator::willRead(const char *, off_t, size_t)
{
// no cache yet

View File

@@ -8,6 +8,7 @@
#include <vector>
#include <string>
#include <boost/utility.hpp>
#include <boost/thread/mutex.hpp>
namespace storagemanager
{
@@ -15,7 +16,7 @@ namespace storagemanager
class IOCoordinator : public boost::noncopyable
{
public:
IOCoordinator();
static IOCoordinator *get();
virtual ~IOCoordinator();
void willRead(const char *filename, off_t offset, size_t length);
@@ -27,6 +28,9 @@ class IOCoordinator : public boost::noncopyable
int stat(const char *path, struct stat *out);
int truncate(const char *path, size_t newsize);
int unlink(const char *path);
private:
IOCoordinator();
};
}

View File

@@ -8,8 +8,6 @@
using namespace std;
extern storagemanager::IOCoordinator *ioc;
namespace storagemanager
{

View File

@@ -9,8 +9,6 @@
using namespace std;
extern storagemanager::IOCoordinator *ioc;
namespace storagemanager
{

View File

@@ -22,6 +22,7 @@ PosixTask::PosixTask(int _sock, uint _length) :
bufferLen(0),
socketReturned(false)
{
ioc = IOCoordinator::get();
}
PosixTask::~PosixTask()

View File

@@ -6,6 +6,7 @@
#include <vector>
#include <sys/types.h>
#include <stdint.h>
#include "IOCoordinator.h"
namespace storagemanager
{
@@ -30,6 +31,8 @@ class PosixTask
void returnSocket();
void socketError();
IOCoordinator *ioc;
private:
PosixTask();

View File

@@ -6,8 +6,6 @@
using namespace std;
extern storagemanager::IOCoordinator *ioc;
namespace storagemanager
{

View File

@@ -10,8 +10,6 @@
using namespace std;
extern storagemanager::IOCoordinator *ioc;
namespace storagemanager
{

View File

@@ -6,8 +6,6 @@
using namespace std;
extern storagemanager::IOCoordinator *ioc;
namespace storagemanager
{

View File

@@ -6,8 +6,6 @@
using namespace std;
extern storagemanager::IOCoordinator *ioc;
namespace storagemanager
{

View File

@@ -6,8 +6,6 @@
using namespace std;
extern storagemanager::IOCoordinator *ioc;
namespace storagemanager
{

View File

@@ -10,17 +10,13 @@
using namespace std;
#include "SessionManager.h"
#include "IOCoordinator.h"
using namespace storagemanager;
IOCoordinator *ioc;
int main(int argc, char** argv)
{
int ret = 0;
SessionManager sessionManager = SessionManager();
ioc = new IOCoordinator();
ret = sessionManager.start();

View File

@@ -6,7 +6,6 @@
#include "TruncateTask.h"
#include "ListDirectoryTask.h"
#include "PingTask.h"
#include "IOCoordinator.h"
#include "messageFormat.h"
#include <iostream>
#include <stdlib.h>
@@ -26,8 +25,6 @@
using namespace storagemanager;
using namespace std;
IOCoordinator *ioc;
struct scoped_closer {
scoped_closer(int f) : fd(f) { }
~scoped_closer() {
@@ -403,7 +400,6 @@ bool pingtask()
int main()
{
ioc = new IOCoordinator();
cout << "connecting" << endl;
makeConnection();
cout << "connected" << endl;