signal(SIGZEN, mindful);
Jul. 27th, 2011 11:54 amLast night with the sangha, I was doing the usual sitting: a thought arises, my brain automatically follows it, after a while I remember that I’m supposed to be sitting zazen, I dismiss the thought. Since I had been coding in the bowels of Linux that day, I free-associated over to signal handling.
Normally, a computer has a one-track mind, and it will sit there and crunch away at whatever you told it to do until you remove power to the processor. The way we get them to do multiple things at once is with interrupts, where an external event tells the CPU to stop what it’s doing, jump into its interrupt-handling code, and deal with whatever just came in. As you’re reading this, your computer is handing thousands of them every second.
Following the analogy, Zen practice seems to be installing an interrupt handler (for a signal that I’m whimsically dubbing SIGZEN, after the Unix tradition of having interrupts with names like SIGINT, SIGSTOP, SIGQUIT, and so on), with the handler having pseudo-code like:
mindful() { foreach thought in thoughts { if (thought→worthwhile) thought→dismiss(PonderItLater); else thought→dismiss(ForgetIt); } }
Sitting in a zendo, with numerous stimuli to remind you that you’re supposed to be doing this (incense, being seated in a not-terribly-comfortable half lotus on a zafu, being surrounded by other people doing the same thing) is then cranking up the frequency of receiving SIGZEN interrupts— the goal being to train your neurological circuits to automatically generate these signals when you’re dealing with daily life outside the zendo as well, when you are lacking the cues present in a zendo.