The Racket repository
![]() As suggested by Jan Dvořák. The event created by `replace-evt` is a kind of event-gated version of `guard-evt`. In particular, (guard-evt thunk) could be expressed as (replace-evt always-evt (lambda (_) (thunk))) Use `replace-evt` as a shortcut for the case when you want to synchronize on either A or C, but you need to wait for B to get C. You could wait on A+B and then, if B is selected, wait on A+C; wrapping B with `replace-evt` to generate C is a kind of shortcut that is eaiser to write and avoids tear-down and re-setup of A. The `replace-evt` constructor is more than a shortcut in the sense that it builds the pattern A+B->A+C into `sync`, which enables abstractions that need a B->C transition. So, `replace-evt` adds expressiveness, but (perhap reassuringly) it does not add any new rendezvous capability. Naturally, the procedure given to `replace-evt` can produce another `replace-evt`, and the event argument to `replace-evt` could also be a `replace-evt`. |
||
---|---|---|
native-pkgs@60c510ba85 | ||
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
.travis.yml | ||
INSTALL.txt | ||
Makefile | ||
README.txt |
This is the source code for the main Racket distribution. See "INSTALL.txt" for information on building Racket. License ------- Racket Copyright (c) 2010-2014 PLT Design Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This means that you can link Racket into proprietary applications, provided you follow the rules stated in the LGPL. You can also modify Racket; if you distribute a modified version, you must distribute it under the terms of the LGPL, which in particular means that you must release the source code for the modified software. See racket/src/COPYING_LESSER.txt for more information.