def test_wait(self): for i in range(NUM_THREADS): thread.start_new(self.f, (i,)) time.sleep(LONGSLEEP) a = self.alive.keys() a.sort() self.assertEquals(a, range(NUM_THREADS)) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent self.wait_impl(cpid) # Tell threads to die self.stop = 1 time.sleep(2*SHORTSLEEP) # Wait for threads to die
def test_wait(self): for i in range(NUM_THREADS): thread.start_new(self.f, (i, )) time.sleep(LONGSLEEP) a = self.alive.keys() a.sort() self.assertEquals(a, range(NUM_THREADS)) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent self.wait_impl(cpid) # Tell threads to die self.stop = 1 time.sleep(2 * SHORTSLEEP) # Wait for threads to die
def main(): for i in range(NUM_THREADS): thread.start_new(f, (i, )) time.sleep(LONGSLEEP) a = alive.keys() a.sort() verify(a == range(NUM_THREADS)) prefork_lives = alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in alive.keys(): if alive[key] != prefork_lives[key]: n = n + 1 os._exit(n) else: # Parent spid, status = os.waitpid(cpid, 0) verify(spid == cpid) verify(status == 0, "cause = %d, exit = %d" % (status & 0xff, status >> 8)) global stop # Tell threads to die stop = 1 time.sleep(2 * SHORTSLEEP) # Wait for threads to die
def test_wait(self): for i in range(NUM_THREADS): thread = threading.Thread(target=self.f, args=(i,)) thread.start() self.threads.append(thread) # busy-loop to wait for threads deadline = time.monotonic() + support.SHORT_TIMEOUT while len(self.alive) < NUM_THREADS: time.sleep(0.1) if deadline < time.monotonic(): break a = sorted(self.alive.keys()) self.assertEqual(a, list(range(NUM_THREADS))) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent self.wait_impl(cpid)
def main(): for i in range(NUM_THREADS): thread.start_new(f, (i,)) time.sleep(LONGSLEEP) a = alive.keys() a.sort() verify(a == range(NUM_THREADS)) prefork_lives = alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in alive.keys(): if alive[key] != prefork_lives[key]: n = n+1 os._exit(n) else: # Parent spid, status = os.waitpid(cpid, 0) verify(spid == cpid) verify(status == 0, "cause = %d, exit = %d" % (status&0xff, status>>8) ) global stop # Tell threads to die stop = 1 time.sleep(2*SHORTSLEEP) # Wait for threads to die
def test_wait(self): for i in range(NUM_THREADS): thread = threading.Thread(target=self.f, args=(i, )) thread.start() self.threads.append(thread) time.sleep(LONGSLEEP) a = self.alive.keys() a.sort() self.assertEqual(a, range(NUM_THREADS)) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent self.wait_impl(cpid)
def test_wait(self): for i in range(NUM_THREADS): _thread.start_new(self.f, (i,)) time.sleep(LONGSLEEP) a = sorted(self.alive.keys()) self.assertEqual(a, list(range(NUM_THREADS))) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent try: self.wait_impl(cpid) finally: # Tell threads to die self.stop = 1
def test_wait(self): for i in range(NUM_THREADS): _thread.start_new(self.f, (i, )) time.sleep(LONGSLEEP) a = sorted(self.alive.keys()) self.assertEqual(a, list(range(NUM_THREADS))) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent try: self.wait_impl(cpid) finally: # Tell threads to die self.stop = 1
def test_wait(self): for i in range(NUM_THREADS): _thread.start_new(self.f, (i, )) deadline = time.monotonic() + 10.0 while len(self.alive) < NUM_THREADS: time.sleep(0.1) if deadline < time.monotonic(): break a = sorted(self.alive.keys()) self.assertEqual(a, list(range(NUM_THREADS))) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: try: self.wait_impl(cpid) finally: self.stop = 1
def test_wait(self): for i in range(NUM_THREADS): thread = threading.Thread(target=self.f, args=(i,)) thread.start() self.threads.append(thread) # busy-loop to wait for threads deadline = time.monotonic() + 10.0 while len(self.alive) < NUM_THREADS: time.sleep(0.1) if deadline < time.monotonic(): break a = sorted(self.alive.keys()) self.assertEqual(a, list(range(NUM_THREADS))) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent self.wait_impl(cpid)
def test_wait(self): for i in range(NUM_THREADS): thread = threading.Thread(target=self.f, args=(i,)) thread.start() self.threads.append(thread) time.sleep(LONGSLEEP) a = self.alive.keys() a.sort() self.assertEqual(a, range(NUM_THREADS)) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent self.wait_impl(cpid)
def _fork(self): """ """ try: if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() except AttributeError: print >> sys.stdout, 'os.fork not defined - skipping it.' cpid = 0 if cpid == 0: # child process self._process_child_start() else: # parent process self._process_parent_start() print >> sys.stdout, 'pid=%d' % cpid
def test_wait(self): for i in range(NUM_THREADS): _thread.start_new(self.f, (i,)) # busy-loop to wait for threads deadline = time.monotonic() + 10.0 while len(self.alive) < NUM_THREADS: time.sleep(0.1) if time.monotonic() <= deadline: break a = sorted(self.alive.keys()) self.assertEqual(a, list(range(NUM_THREADS))) prefork_lives = self.alive.copy() if sys.platform in ['unixware7']: cpid = os.fork1() else: cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 for key in self.alive: if self.alive[key] != prefork_lives[key]: n += 1 os._exit(n) else: # Parent try: self.wait_impl(cpid) finally: # Tell threads to die self.stop = 1
"""This test checks for correct fork() behavior.