The simplest thing to do would be to call ask
from the main process itself:
if __name__ == '__main__':
p1 = Process(target = writeFiles)
p1.start()
ask()
Or you could use a thread:
import threading
import multiprocessing as mp
import sys
def ask(stdin):
print 'Your name? ',
a = stdin.readline().strip()
if a == 'Tester':
print 'Hello'
else:
print 'Bye'
stdin.close()
def writeFiles():
pass
if __name__ == '__main__':
p1 = mp.Process(target=writeFiles)
p1.start()
t1 = threading.Thread(target=ask, args=(sys.stdin,))
t1.start()
p1.join()
t1.join()
Or, you could use os.dup
as J.F. Sebastian shows here:
import multiprocessing as mp
import sys
import os
def ask(stdin):
print 'Your name? ',
a = stdin.readline().strip()
if a == 'Tester':
print 'Hello'
else:
print 'Bye'
stdin.close()
def writeFiles():
pass
newstdin = os.fdopen(os.dup(sys.stdin.fileno()))
if __name__ == '__main__':
p1 = mp.Process(target=writeFiles)
p1.start()
p2 = mp.Process(target=ask, args=(newstdin,))
p2.start()
p1.join()
p2.join()