oczekiwanie na dane użytkownika w osobnym wątku

Próbuję zrealizować sposób, aby utworzyć wątek, który czeka na dane użytkownika; jeśli w ciągu 10 sekund nie wprowadzono żadnych danych, chcę, aby skrypt zabił zrodzony wątek i kontynuował przetwarzanie. Mam sposób, aby uzyskać dane wejściowe z wątku, jeśli tekst został wprowadzony, ale nie mam możliwości, aby przekroczyć limit czasu nowo utworzonego wątku.

W poniższym przykładzie jest najbliższy. Mówię nowo utworzonemu wątkowi, że jest demonem, i wyjdzie, gdy główny skrypt zakończy działanie. Mam problem z tym, że wątek będzie nadal czekał, aż skrypt zakończy działanie lub użytkownik wprowadzi coś.

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]

Wiem, że nagłe zabicie wątku nie jest najlepszym sposobem (Powiązany link), ale nie wiem, jak przerwać nowy wątek czekający na raw_input

questionAnswers(2)

yourAnswerToTheQuestion