As part of signal improvements on the Orange Line, the T is shutting down the northern part of the line on Sunday through Thursday evenings after 9 PM: buses from Oak Grove to Sullivan, and then single-track operation from Sullivan to Haymarket. I've done this a couple of times now; it's more irritating than fun, riding the train "wrong rail" isn't that exciting, and the train tends to go kind of slowly, and it's frustrating getting bussed right past home to need to walk back later.
On Monday night: "Sullivan Square. This is the last stop for this train; shuttle buses to Wellington, Malden Center, and Oak Grove are at the lower busway up the stairs." (pause) "Could you please run the baton to the other end of the train?"
Rail systems have this little goal of not having trains run into each other. The usual way they accomplish this is with signal systems: the track gets divided into blocks, and you get a red signal on entry to a block if there's already a train in it, so you never have two trains in the same block and therefore never have two trains in the same place. In this case, though, they're running trains in the opposite direction of the signals, and have no way to get them out of the way of a train coming the other way.
So now you have a constrained resource (the track), that you can only have a single user of at a time in the place of multiple current threads of execution (trains). The solution, of course, is a mutual-exclusion lock: you can't use the resource until you're holding the lock. And in this case the lock is a two-foot-long green piece of wood; the driver stops when entering the single-track section to get the lock, it stays with the driver when the train turns at Sullivan, and gets handed back to the people on the ground when the train gets back to Haymarket.
On Monday night: "Sullivan Square. This is the last stop for this train; shuttle buses to Wellington, Malden Center, and Oak Grove are at the lower busway up the stairs." (pause) "Could you please run the baton to the other end of the train?"
Rail systems have this little goal of not having trains run into each other. The usual way they accomplish this is with signal systems: the track gets divided into blocks, and you get a red signal on entry to a block if there's already a train in it, so you never have two trains in the same block and therefore never have two trains in the same place. In this case, though, they're running trains in the opposite direction of the signals, and have no way to get them out of the way of a train coming the other way.
So now you have a constrained resource (the track), that you can only have a single user of at a time in the place of multiple current threads of execution (trains). The solution, of course, is a mutual-exclusion lock: you can't use the resource until you're holding the lock. And in this case the lock is a two-foot-long green piece of wood; the driver stops when entering the single-track section to get the lock, it stays with the driver when the train turns at Sullivan, and gets handed back to the people on the ground when the train gets back to Haymarket.