Loading ndb/include/portlib/NdbMutex.h +0 −2 Original line number Diff line number Diff line Loading @@ -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 /** Loading ndb/src/mgmsrv/MgmtSrvr.cpp +11 −9 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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); Loading Loading @@ -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, Loading @@ -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++) Loading Loading @@ -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; Loading ndb/src/mgmsrv/MgmtSrvr.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ public: MgmtSrvr &m_mgmsrv; NodeBitmask m_reserved_nodes; }; NdbMutex *m_node_id_mutex; /** * Start/initate the event log. Loading ndb/src/ndbapi/Ndb.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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 Loading Loading @@ -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 Loading ndb/src/ndbapi/NdbEventOperationImpl.cpp +10 −13 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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)); } Loading @@ -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 Loading Loading @@ -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() Loading Loading @@ -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 Loading
ndb/include/portlib/NdbMutex.h +0 −2 Original line number Diff line number Diff line Loading @@ -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 /** Loading
ndb/src/mgmsrv/MgmtSrvr.cpp +11 −9 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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); Loading Loading @@ -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, Loading @@ -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++) Loading Loading @@ -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; Loading
ndb/src/mgmsrv/MgmtSrvr.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ public: MgmtSrvr &m_mgmsrv; NodeBitmask m_reserved_nodes; }; NdbMutex *m_node_id_mutex; /** * Start/initate the event log. Loading
ndb/src/ndbapi/Ndb.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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 Loading Loading @@ -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 Loading
ndb/src/ndbapi/NdbEventOperationImpl.cpp +10 −13 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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)); } Loading @@ -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 Loading Loading @@ -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() Loading Loading @@ -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