void vrpn_PeerMutex::release(void) { int i; // Can't release it if we don't already have it. // There aren't any appropriate callbacks to trigger here. :) if (!isHeldLocally()) { #ifdef VERBOSE fprintf(stderr, "vrpn_PeerMutex::release: we don't hold the mutex.\n"); #endif return; } d_state = AVAILABLE; d_holderIP = 0; d_holderPort = -1; for (i = 0; i < d_numPeers; i++) { sendRelease(d_peer[i]); } triggerReleaseCallbacks(); #ifdef VERBOSE fprintf(stderr, "vrpn_PeerMutex::release: released the mutex.\n"); #endif }
void SurfaceBuffer::destructBufferState() { destroyTexture(); if (m_buffer) { sendRelease(); if (m_handle) { if (m_shmBuffer) { delete static_cast<QImage *>(m_handle); #ifdef QT_COMPOSITOR_WAYLAND_GL } else { QWaylandClientBufferIntegration *hwIntegration = m_compositor->clientBufferIntegration(); hwIntegration->unlockNativeBuffer(m_handle, 0); #endif } } wl_list_remove(&m_destroy_listener.listener.link); } m_buffer = 0; m_handle = 0; m_committed = false; m_is_registered_for_buffer = false; m_is_displayed = false; m_image = QImage(); }
void MaekawaAlgorithm::enterCriticalSection(){ printf("\n\n******Node '%d' in CRITICAL SECTION******\n\n",processID); flagforCS =true; char buff[4095]; sprintf(buff,"Node %d entered CS, Seq: %ld \n",processID,sequenceNo); writeToFile("Resource.txt",buff); sleep(1); hasCompletedCriticalSection = true; hasSentLockedMessage = false; printf("----Queue size before remove is: %d\n", queue->size()); queue->remove(processID); printf("----Queue size after remove is: %d\n", queue->size()); printf("----Node %d has delete itself from the queue\n",processID); printf("----Node %d has received 0 locked message\n",processID); printf("----Node %d has exited its critical section\n",processID); printf("********************************************\n"); //reset quorumVote Table printf("--^^--quorumVote Table--^^-- \n"); for(int i = 0; i < quorumsize; i++){ quorumVote[i][1] = 0; printf("%d , %d \n",quorumVote[i][0],quorumVote[i][1]); } sendRelease(); }
void SurfaceBuffer::destructBufferState() { if (m_buffer) { if (m_committed) sendRelease(); wl_list_remove(&m_destroy_listener.listener.link); } m_buffer = 0; m_committed = false; m_is_registered_for_buffer = false; m_is_displayed = false; }
void vrpn_Mutex_Remote::release (void) { if (!isHeldLocally()) { return; } #ifdef VERBOSE fprintf(stderr, "Releasing mutex.\n"); #endif d_state = AVAILABLE; sendRelease(); triggerReleaseCallbacks(); }