%T New ALT for Application Timers and Synchronisation Point Scheduling %A Øyvind Teig, Per Johan Vannebo %E Peter H. Welch, Herman Roebbers, Jan F. Broenink, Frederick R. M. Barnes, Carl G. Ritson, Adam T. Sampson, G. S. Stiles, Brian Vinter %B Communicating Process Architectures 2009 %X During the design of a small channel\-based concurrency runtime system (ChanSched, written in ANSI C), we saw that application timers (which we call egg and repeat timers) could be part of its supported ALT construct, even if their states live through several ALTs. There are no side effects into the ALT semantics, which enable waiting for channels, channel timeout and, now, the new application timers. Application timers are no longer busy polled for timeout by the process. We show how the classical occam language may benefit from a spin\-off of this same idea. Secondly, we wanted application programmers to be freed from their earlier practice of explicitly coding communication states at channel synchronisation points, which was needed by a layered in\-house scheduler. This led us to develop an alternative to the non\-ANSI C \[dq]computed goto\[dq] (found in gcc). Instead, we use a switch/case with goto line\-number\-tags in a synch\-point\-table for scheduling. We call this table, one for each process, a proctor table. The programmer does not need to manage this table, which is generated with a script, and hidden within an \[sh]include file.