Estoy tratando de lograr una forma de engendrar un hilo que espera la entrada del usuario; si no se ingresa ninguna entrada dentro de los 10 segundos, quiero que el script elimine el hilo generado y continúe con el procesamiento. Tengo una forma de recuperar la entrada del hilo si se ingresa texto, pero no tengo forma de dejar que el tiempo de espera elimine el hilo recién generado.esperando la entrada del usuario en un hilo separado
En el siguiente ejemplo, es lo más cerca que he llegado. Le digo al hilo recién creado que es un daemon y que saldrá cuando salga el script principal. El problema que tengo con esto es que el hilo continuará esperando hasta que el script salga o el usuario haya ingresado algo.
shared_var = ['1']
def run(ref):
ref[0] = raw_input("enter something: ")
print "shared var changed to '%s'" % (ref[0])
thread = threading.Thread(target=run, args=(shared_var,))
thread.daemon = True
thread.start()
time.sleep(10) # simplified timeout
#Need some way to stop thread if no input has been entered
print "shared var = " + shared_var[0]
que conozco bruscamente matar a un hilo no es el mejor camino a seguir (Related Link), pero no sé cómo interrumpir el nuevo hilo de espera en el raw_input