> I want to create a server that pulls the modem_message event and prints to the console
Cool, you can `listen` or `pull` for that event
> but I also want the computer to be able to send messages (based on io.read()) while waiting for a message.
`listen` works well for background handling, while in the foreground you are doing other work (such as io.read). However, you want your background to also print to the console? That'll obscure/interfere (visually) with the io.read getting user input. But okay
> I tried using threads
Sure, threads can do this job too.