Beispiel #1
0
def signal_handler(signal, frame):
    #shm.remove_memory(tab.shm_obj.shmid)
    #shm.remove_semaphore(tab.sem_obj.semid)
    global tab
    tlog("shared objects are destroyed:start")
    try:
        shm.remove_semaphore(tab.sem_obj.semid)
    except:
        tlog("an error occured while destroying the semaphore" +
             str(sys.exc_info()))
        pass
    try:
        try:
            tab.shm_obj.detach()
        except:
            pass

        shm.remove_memory(tab.shm_obj.shmid)
    except:
        tlog("an error occured while destroying the shared memory" +
             str(sys.exc_info()[0]))
        pass

    tlog("shared objects are destroyed:end")
    sys.exit(0)
Beispiel #2
0
    def delete(self):
        # First remove semaphore
	try:
	    shm.remove_semaphore(self.semid)
	except:
	    pass

	# Then remove status shm
	try:
	    self.stat_buf.remove()
	except:
	    pass
Beispiel #3
0
    def delete(self):
        # First remove semaphore
        try:
            shm.remove_semaphore(self.semid)
        except:
            pass

        # Then remove status shm
        try:
            self.stat_buf.remove()
        except:
            pass
Beispiel #4
0
    def delete(self):

        # Remove status shm
        try:
            shm.remove_semaphore(self.semid)

        except:
            pass

        # Then remove databuf shm
        try:
            self.buf.remove()
        except:
            pass
Beispiel #5
0
    def delete(self):

	# Remove status shm
	try:
	    shm.remove_semaphore(self.semid)
	        
	except:
	    pass

	# Then remove databuf shm
	try:
	    self.buf.remove()
	except:
	    pass
Beispiel #6
0
def signal_handler(signal, frame):
    #shm.remove_memory(tab.shm_obj.shmid)
    #shm.remove_semaphore(tab.sem_obj.semid)
    global tab
    tlog("shared objects are destroyed:start")
    try :
        shm.remove_semaphore(tab.sem_obj.semid)
    except :
        tlog("an error occured while destroying the semaphore" + str(sys.exc_info()))
        pass
    try :
        try :
            tab.shm_obj.detach()
        except :
            pass

        shm.remove_memory(tab.shm_obj.shmid)
    except :
        tlog("an error occured while destroying the shared memory" + str(sys.exc_info()[0]))
        pass

    tlog("shared objects are destroyed:end")
    sys.exit(0)
            SemaphoreHandle.V()
            say("waiting for semaphore")
            SemaphoreHandle.P()

        # Once the call to .P() completes, I own the semaphore and I'm free to write to
        # the memory.
        s = ReadFromMemory(MemoryHandle)

    # What I read must be the md5 of what I wrote or something's gone wrong.
    try:
        assert (s == md5.new(WhatIWrote).hexdigest())
    except:
        raise AssertionError, "Shared memory corruption after %d iterations." % i

    WhatIWrote = md5.new(s).hexdigest()

    WriteToMemory(MemoryHandle, WhatIWrote)

# Announce for one last time that the semaphore is free again so that Mrs. Conclusion can exit.
if DemoConstants.USE_SEMAPHORE:
    say("Final forfeit of semaphore")
    SemaphoreHandle.V()
    time.sleep(5)
    # ...before beginning to wait until it is free again.
    say("Final wait for semaphore")
    SemaphoreHandle.P()

say("Destroying semaphore and shared memory.")
shm.remove_memory(MemoryHandle.shmid)
shm.remove_semaphore(SemaphoreHandle.semid)
Beispiel #8
0
 def remove(self):
     shm.remove_semaphore(self._SemaphoreHandle.semid)
     self._SemaphoreHandle = None
Beispiel #9
0
def remove_semaphore(key):
    # Destroys the semaphore. Raises KeyError if the key doesn't exist.
    shm.remove_semaphore(shm.getsemid(key))