📄 test_fork1.py
字号:
"""This test checks for correct fork() behavior.We want fork1() semantics -- only the forking thread survives in thechild after a fork().On some systems (e.g. Solaris without posix threads) we find that allactive threads survive in the child after a fork(); this is an error."""import os, sys, time, threadLONGSLEEP = 2SHORTSLEEP = 0.5alive = {}def f(id): while 1: alive[id] = os.getpid() try: time.sleep(SHORTSLEEP) except IOError: passdef main(): for i in range(4): thread.start_new(f, (i,)) time.sleep(LONGSLEEP) a = alive.keys() a.sort() assert a == range(4) cpid = os.fork() if cpid == 0: # Child time.sleep(LONGSLEEP) n = 0 pid = os.getpid() for key in alive.keys(): if alive[key] == pid: n = n+1 os._exit(n) else: # Parent spid, status = os.waitpid(cpid, 0) assert spid == cpid assert status == 0, "cause = %d, exit = %d" % (status&0xff, status>>8)main()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -