From: Matthew Flatt <>
Date: Thu, 10 Apr 2003 14:44:22 -0600
Subject: [plt-scheme] 203.7

The exp-tagged code in CVS for MzScheme and Mred is now version 203.7.

This version mainly cleans up some details in the concurrency

 * `thread-resume’ now installs a transitive resume. That is,
   `(thread-resume t1 t2)’ not only resumes t1 and potentially changes
   t1’s custodian, it also arranges for each future resume of t2 to
   also resume t1.

 * Semaphore blocking is now "fair" in the usual sense: If a thread
   waits on a semaphore that is unblocked arbitrarily often, then the
   thread is eventually unblocked (no matter how many other threads
   also wait on the same semaphore).

 * `object-wait-multiple’ now fairly selects among alternatives using
   psuedo-random numbers. The pseudo-random generator is specified
   through a new `current-wait-pseudo-random-generator’ parameter. As a
   result, all else being equal, `object-wait-multiple’ can be made
   deterministic by picking a seed for the generator.

 * Fixed event-handling problems in Windows. For example, under XP,
   mousing over the task bar now hilites task buttons, and non-roman
   input methods don’t become temporarily wedged when used in
   DrScheme/MrEd. [This change was actually exp-tagged a few days ago.]

 * Fixed a crashing problem under OS X when using scroll bars. [This
   change was actually exp-tagged over a week ago.]

 * Added `tcp-port?’.