import sys
import threading
import time
import queue

input_queue = queue.Queue()


def add_input(input_queue):
    while True:
        input_queue.put(sys.stdin.read(1))

def foobar():
    global input_queue
    input_thread = threading.Thread(target=add_input, args=(input_queue,))
    input_thread.daemon = True
    input_thread.start()

    last_update = time.time()
    while True:
        if time.time()-last_update>0.5:
            sys.stdout.write(".")
            sys.stdout.flush()
            last_update = time.time()
        if not input_queue.empty():
            print("\ninput:", input_queue.get())


foobar()

