It is interesting to note that the pump stream in this server is not actually used for anything more than a handle. The above first version of the line length server does not defend itself against the buildup of clients that somehow never get around to closing their network connections. Each timer appears as an input stream to the SETL program, and generates an empty line every time the indicated number of milliseconds elapses. These streams can also be included in the input set accepted by select at the top of the typical event loop. SETL programs can generate signals, too.
Process identifiers exist in a namespace that is global to SETL programs.