Commit 7e39126d authored by unknown's avatar unknown
Browse files

removed usage of NDB_MUTEX_INITIALIZER

parent 760f69c1
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -31,13 +31,11 @@ extern "C" {
#if defined NDB_OSE || defined NDB_SOFTOSE
#include <ose.h>
typedef SEMAPHORE NdbMutex;
#define NDB_MUTEX_INITIALIZER { 1, 0, 0 }
#elif defined NDB_WIN32
typedef CRITICAL_SECTION NdbMutex;
#else
#include <pthread.h>
typedef pthread_mutex_t NdbMutex;
#define NDB_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
#endif

/**
+11 −9
Original line number Diff line number Diff line
@@ -534,6 +534,12 @@ MgmtSrvr::MgmtSrvr(NodeId nodeId,
    m_statisticsListner.m_logLevel = se.m_logLevel;
  }
  
  if ((m_node_id_mutex = NdbMutex_Create()) == 0)
  {
    ndbout << "mutex creation failed line = " << __LINE__ << endl;
    exit(-1);
  }

  DBUG_VOID_RETURN;
}

@@ -627,7 +633,9 @@ MgmtSrvr::~MgmtSrvr()

  stopEventLog();

  NdbCondition_Destroy(theMgmtWaitForResponseCondPtr);  NdbMutex_Destroy(m_configMutex);
  NdbMutex_Destroy(m_node_id_mutex);
  NdbCondition_Destroy(theMgmtWaitForResponseCondPtr);
  NdbMutex_Destroy(m_configMutex);

  if(m_newConfig != NULL)
    free(m_newConfig);
@@ -2084,12 +2092,6 @@ MgmtSrvr::getNodeType(NodeId nodeId) const
  return nodeTypes[nodeId];
}

#ifdef NDB_WIN32
static NdbMutex & f_node_id_mutex = * NdbMutex_Create();
#else
static NdbMutex f_node_id_mutex = NDB_MUTEX_INITIALIZER;
#endif

bool
MgmtSrvr::alloc_node_id(NodeId * nodeId, 
			enum ndb_mgm_node_type type,
@@ -2108,7 +2110,7 @@ MgmtSrvr::alloc_node_id(NodeId * nodeId,
    }
    DBUG_RETURN(true);
  }
  Guard g(&f_node_id_mutex);
  Guard g(m_node_id_mutex);
  int no_mgm= 0;
  NodeBitmask connected_nodes(m_reserved_nodes);
  for(Uint32 i = 0; i < MAX_NODES; i++)
@@ -2525,7 +2527,7 @@ MgmtSrvr::Allocated_resources::Allocated_resources(MgmtSrvr &m)

MgmtSrvr::Allocated_resources::~Allocated_resources()
{
  Guard g(&f_node_id_mutex);
  Guard g(m_mgmsrv.m_node_id_mutex);
  if (!m_reserved_nodes.isclear()) {
    // node has been reserved, force update signal to ndb nodes
    global_flag_send_heartbeat_now= 1;
+1 −0
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@ public:
    MgmtSrvr &m_mgmsrv;
    NodeBitmask m_reserved_nodes;
  };
  NdbMutex *m_node_id_mutex;

  /**
   * Start/initate the event log.
+4 −3
Original line number Diff line number Diff line
@@ -1365,7 +1365,8 @@ Ndb::pollEvents(int aMillisecondNumber)

#ifdef VM_TRACE
#include <NdbMutex.h>
static NdbMutex print_state_mutex = NDB_MUTEX_INITIALIZER;
extern NdbMutex *ndb_print_state_mutex;

static bool
checkdups(NdbConnection** list, unsigned no)
{
@@ -1383,7 +1384,7 @@ Ndb::printState(const char* fmt, ...)
  va_start(ap, fmt);
  vsprintf(buf, fmt, ap);
  va_end(ap);
  NdbMutex_Lock(&print_state_mutex);
  NdbMutex_Lock(ndb_print_state_mutex);
  bool dups = false;
  ndbout << buf << " ndb=" << hex << this << dec;
#ifndef NDB_WIN32
@@ -1421,7 +1422,7 @@ Ndb::printState(const char* fmt, ...)
  }
  for (unsigned i = 0; i < theNoOfCompletedTransactions; i++)
    theCompletedTransactionsArray[i]->printState();
  NdbMutex_Unlock(&print_state_mutex);
  NdbMutex_Unlock(ndb_print_state_mutex);
}
#endif

+10 −13
Original line number Diff line number Diff line
@@ -573,12 +573,8 @@ int NdbEventOperationImpl::wait(void *p, int aMillisecondNumber)
 *
 */

extern NdbMutex * ndb_global_event_buffer_mutex;
static NdbGlobalEventBuffer *ndbGlobalEventBuffer=NULL;
#ifdef NDB_WIN32
static NdbMutex & ndbGlobalEventBufferMutex = * NdbMutex_Create();
#else
static NdbMutex ndbGlobalEventBufferMutex = NDB_MUTEX_INITIALIZER;
#endif

/*
 * Class NdbGlobalEventBufferHandle
@@ -607,18 +603,18 @@ NdbGlobalEventBufferHandle::NdbGlobalEventBufferHandle
    exit(-1);
  }
  
  NdbMutex_Lock(&ndbGlobalEventBufferMutex);
  NdbMutex_Lock(ndb_global_event_buffer_mutex);
  if (ndbGlobalEventBuffer == NULL) {
    if (ndbGlobalEventBuffer == NULL) {
      ndbGlobalEventBuffer = new NdbGlobalEventBuffer();
      if (!ndbGlobalEventBuffer) {
	NdbMutex_Unlock(&ndbGlobalEventBufferMutex);
	NdbMutex_Unlock(ndb_global_event_buffer_mutex);
	ndbout_c("NdbGlobalEventBufferHandle:: failed to allocate ndbGlobalEventBuffer");
	exit(-1);
      }
    }
  }
  NdbMutex_Unlock(&ndbGlobalEventBufferMutex);
  NdbMutex_Unlock(ndb_global_event_buffer_mutex);

  GUARD(real_init(this,MAX_NUMBER_ACTIVE_EVENTS));
}
@@ -631,12 +627,12 @@ NdbGlobalEventBufferHandle::~NdbGlobalEventBufferHandle()
  ndbGlobalEventBuffer->real_remove(this);
  ndbGlobalEventBuffer->unlock();

  NdbMutex_Lock(&ndbGlobalEventBufferMutex);
  NdbMutex_Lock(ndb_global_event_buffer_mutex);
  if (ndbGlobalEventBuffer->m_handlers.size() == 0) {
    delete ndbGlobalEventBuffer;
    ndbGlobalEventBuffer = NULL;
  }
  NdbMutex_Unlock(&ndbGlobalEventBufferMutex);
  NdbMutex_Unlock(ndb_global_event_buffer_mutex);
}

void
@@ -770,13 +766,13 @@ void
NdbGlobalEventBuffer::lock()
{
  if (!m_group_lock_flag)
    NdbMutex_Lock(&ndbGlobalEventBufferMutex);
    NdbMutex_Lock(ndb_global_event_buffer_mutex);
}
void
NdbGlobalEventBuffer::unlock()
{
  if (!m_group_lock_flag)
    NdbMutex_Unlock(&ndbGlobalEventBufferMutex);
    NdbMutex_Unlock(ndb_global_event_buffer_mutex);
}
void
NdbGlobalEventBuffer::add_drop_lock()
@@ -1232,7 +1228,8 @@ NdbGlobalEventBuffer::real_wait(NdbGlobalEventBufferHandle *h,
    n += hasData(h->m_bufferIds[i]);
  if (n) return n;

  int r = NdbCondition_WaitTimeout(h->p_cond, &ndbGlobalEventBufferMutex, aMillisecondNumber);
  int r = NdbCondition_WaitTimeout(h->p_cond, ndb_global_event_buffer_mutex,
				   aMillisecondNumber);
  if (r > 0)
    return -1;

Loading