Message218483
sorry! this is the correct version ;-)
-------------------------------------------
import mmap, os, select
NUM_CHILDREN = 30
MSG_LEN = 9
BUF_LEN = NUM_CHILDREN * MSG_LEN
buf = mmap.mmap(-1, BUF_LEN)
p = select.poll()
def write_buffer(i):
msg = '%s\t%d\n' % (i, os.getpid())
offset = MSG_LEN * i
buf.seek(offset)
buf.write(msg)
def child(i, pipeout):
write_buffer(i)
os.write(pipeout, 'OK\0'.encode())
os._exit(0)
def fork(i, p):
pipein, pipeout = os.pipe()
if os.fork() == 0:
child(i, pipeout)
else:
p.register(pipein)
def loop(msgs, p):
msgs = NUM_CHILDREN
while msgs:
for fd, event in p.poll():
p.unregister(fd)
msgs = msgs - 1
for i in range(NUM_CHILDREN):
fork(i, p)
loop(NUM_CHILDREN, p)
buf.seek(0)
print buf.read(BUF_LEN) |
|
Date |
User |
Action |
Args |
2014-05-13 20:13:23 | hudson | set | recipients:
+ hudson, docs@python |
2014-05-13 20:13:23 | hudson | set | messageid: <1400012003.54.0.605655314952.issue21501@psf.upfronthosting.co.za> |
2014-05-13 20:13:23 | hudson | link | issue21501 messages |
2014-05-13 20:13:23 | hudson | create | |
|