racket/collects/scribblings/reference
Matthew Flatt 4d76aa2040 place channels & threads: improve GC
Allow a thread to be GCed when it is blocked on a place
channel for reading and the place channel's write end
is inaccessible.

GC is limited to threads that do not participate in cycles
of such threads, where the otherwise unerachable threads
are blocked on place channels that are reachable among the
set of threads. In other words, the GC finds the greatest
fix point (as measured by the threads to retain) instead of
least fix point --- which isn't what you want, but finding
the least fix point seems to require significant extra GC
machinery across places.

This improvement was intended to solve the same problem as
commit 7b0608c, but that case seems to run into the limitation
on cycles.
2013-03-25 05:15:24 -06:00
..
async-channels.scrbl reference: rerrange docs on synchronizable events 2012-12-25 07:20:58 -06:00
block.scrbl Use a new evaluaor in "for.scrbl", have it require `racket/base' for syntax. 2012-07-22 13:38:38 -04:00
booleans.scrbl docs: clarification for `immutable?' 2012-12-30 20:30:20 -06:00
breaks.scrbl Fix doc typos 2013-01-03 02:27:30 -05:00
bytes.scrbl
channels.scrbl reference: rerrange docs on synchronizable events 2012-12-25 07:20:58 -06:00
chaperones.scrbl racket/base: add `impersonator-ephemeron' 2013-02-18 17:01:11 -07:00
chars.scrbl
class.scrbl Fix doc typos 2013-01-03 02:27:30 -05:00
cmdline.scrbl racket/cmdline add `#:ps' clause 2012-05-29 11:00:43 -06:00
code-inspectors.scrbl references: link "A parameter that..." to the definition of "parameter" 2012-08-22 10:28:56 -06:00
collects.scrbl Reference: fix doc typos 2012-07-03 03:10:04 -04:00
concurrency.scrbl move future-visualizer docs out of the Reference 2012-09-07 09:11:16 -06:00
cont-marks.scrbl Documentation for mark key proxies and contracts 2012-06-26 13:39:36 -04:00
cont.scrbl Add Guide pointers to Refs on exceptions & control 2012-10-16 01:31:20 -04:00
contracts-struct-prop.scrbl Fix doc typos 2013-01-03 02:27:30 -05:00
contracts.scrbl adjust contract library to call raise-argument-error instead of error 2013-03-23 22:00:29 -05:00
control-lib.scrbl Doc typo 2012-12-10 15:49:50 -05:00
control.scrbl
custodians.scrbl reference: rerrange docs on synchronizable events 2012-12-25 07:20:58 -06:00
custom-ports.scrbl make contracts slightly more readable for 2013-01-24 22:04:47 -06:00
custom-write.scrbl Docs for gen:custom-write. 2012-05-24 16:51:14 -04:00
data.scrbl fix docs for `box-cas!', fix JITted version to check mutability 2012-05-03 21:38:36 -06:00
debugging.scrbl
define-struct.scrbl Use syntax-procedure-alias-property with struct constructor procedures as well. 2013-01-14 14:27:33 -05:00
dicts.scrbl Fic generics docs. 2012-08-08 17:26:55 -04:00
distributed.scrbl Fix doc typos 2013-01-03 02:27:30 -05:00
ellipses-defn.rkt
ellipses.rkt
encodings.scrbl references: link "A parameter that..." to the definition of "parameter" 2012-08-22 10:28:56 -06:00
engine.scrbl adjust racket/engine so that it logs the time that various things happen 2012-10-29 06:45:12 -05:00
enter.scrbl
eval-model.scrbl terminology change again: "cross-phases persistent" modules 2013-02-27 08:53:43 -07:00
eval.scrbl track import "shapes" as procedure or structure type 2012-10-30 13:29:28 -06:00
evts.scrbl Support for multiple value return from wrap-evt and handle-evt 2013-02-14 15:45:26 -07:00
exit.scrbl references: link "A parameter that..." to the definition of "parameter" 2012-08-22 10:28:56 -06:00
exns.scrbl Example for with-handlers 2013-01-18 10:39:36 -05:00
extflonums.scrbl windows: extflonum support 2013-03-18 07:42:32 -07:00
extras.css
extras.tex
fasl.scrbl
file-ports.scrbl
filesystem.scrbl document `define-runtime-path' limitation 2012-11-11 09:38:16 -07:00
fixnums.scrbl reference: add missing section tags 2012-12-03 12:12:54 -07:00
flonums.scrbl reference: add missing section tags 2012-12-03 12:12:54 -07:00
for.scrbl Fix typo 2012-11-19 16:29:56 -05:00
format.scrbl fix rounding in ~r, docs 2013-01-13 15:52:08 -05:00
futures-logging.scrbl move future-visualizer docs out of the Reference 2012-09-07 09:11:16 -06:00
futures.scrbl move future-visualizer docs out of the Reference 2012-09-07 09:11:16 -06:00
generic.scrbl Implementation of #:defaults keyword for define-generics 2012-11-09 20:14:56 -05:00
hashes.scrbl Have a generic interface for equal+hash. 2012-05-24 16:51:11 -04:00
help.scrbl fix `help' docs 2012-06-25 08:21:55 -06:00
include.scrbl
info.rkt break cross-reference info for document into pieces 2012-11-23 18:44:51 -07:00
init.scrbl add experimental support for "phaseless" modules 2013-02-26 14:55:28 -07:00
io.scrbl
kernel.scrbl terminology change again: "cross-phases persistent" modules 2013-02-27 08:53:43 -07:00
load-lang.scrbl
logging.scrbl note that the logger-callback's default argument is #f 2013-03-14 14:11:02 -05:00
macros.scrbl Add a `compatibility' collect for compatibility with other languages. 2012-07-27 16:49:05 -04:00
match-grammar.rkt
match-parse.rkt
match.scrbl Add OrderedAnd patterns, and use them in ? patterns. 2013-01-22 14:59:41 -05:00
memory.scrbl racket/base: add `impersonator-ephemeron' 2013-02-18 17:01:11 -07:00
model.scrbl
module-reflect.scrbl add `module-compiled-cross-phase-persistent?' 2013-02-27 08:53:43 -07:00
mpairs.scrbl Fix documentation for packages and mutable lists. 2012-07-31 17:12:30 -04:00
mz.rkt reference: rerrange docs on synchronizable events 2012-12-25 07:20:58 -06:00
namespaces.scrbl references: link "A parameter that..." to the definition of "parameter" 2012-08-22 10:28:56 -06:00
networking.scrbl Fix docs on udp-open-socket 2013-03-02 13:37:29 -05:00
numbers.scrbl doc correction and test additions for `atan' 2013-03-01 15:28:39 -07:00
os.scrbl
pairs.scrbl Doc fixes for takef & friends 2013-03-09 17:13:59 -05:00
parameters.scrbl
paths.scrbl add `current-compiled-file-roots', PLTCOMPILEDROOTS, and -R/--compiled 2012-09-11 13:18:18 -06:00
pipes.scrbl doc improvement 2012-10-01 07:14:46 -06:00
places.scrbl place channels & threads: improve GC 2013-03-25 05:15:24 -06:00
port-buffers.scrbl add `file-truncate' 2013-01-18 11:03:46 -06:00
port-lib.scrbl change `transplant-{input,output}-port' to propagate buffering 2012-08-27 19:44:06 -06:00
port-line-counting.scrbl doc: add some links 2013-02-14 17:30:10 -07:00
port-procs.scrbl reference: rerrange docs on synchronizable events 2012-12-25 07:20:58 -06:00
ports.scrbl reference: improve docs on peeking 2013-03-19 15:48:22 -07:00
pretty-print.scrbl references: link "A parameter that..." to the definition of "parameter" 2012-08-22 10:28:56 -06:00
printer.scrbl extflonums 2013-01-28 18:17:06 -07:00
procedures.scrbl
prog-steps.rkt
promise.scrbl fix `delay/thread' error when promise-running thread terminates 2012-08-29 09:32:54 -06:00
prop-port.scrbl
read.scrbl references: link "A parameter that..." to the definition of "parameter" 2012-08-22 10:28:56 -06:00
reader-example.rkt
reader.scrbl extflonums 2013-01-28 18:17:06 -07:00
readtables.scrbl doc clarification on readtable procedures 2013-01-24 06:43:10 -05:00
reference.scrbl add a mention of the flat/chaperone/impersonator contract hierarchy to the contract docs 2012-08-28 13:19:05 -05:00
regexps.scrbl Move regexp-replaces' from ffi/unsafe' to `racket/private/string'. 2012-06-22 14:27:14 -04:00
rmpi.scrbl racket/place/distributed: fix doc problems 2012-05-20 14:11:17 -06:00
running.scrbl add experimental support for "phaseless" modules 2013-02-26 14:55:28 -07:00
runtime.scrbl add 'so-mode to `system-type' 2013-03-01 15:20:17 -07:00
rx.rkt
sandbox.scrbl Minor sandbox improvements. 2013-03-05 02:22:06 -05:00
security-guards.scrbl references: link "A parameter that..." to the definition of "parameter" 2012-08-22 10:28:56 -06:00
security.scrbl
semaphores.scrbl reference: rerrange docs on synchronizable events 2012-12-25 07:20:58 -06:00
sequences.scrbl Added another example for for/fold/derived: for/max. 2012-10-28 16:36:00 -06:00
serialization.scrbl Make srclocs serializable. 2012-12-06 17:53:04 -05:00
sets.scrbl doc clarification on `set-rest' 2012-11-16 06:37:23 -07:00
shared.scrbl
splicing.scrbl
startup.scrbl Add content to documentation on '-c' to ward off accidental misuse. 2012-12-03 12:48:50 -07:00
string-input.scrbl reference: improve docs on peeking 2013-03-19 15:48:22 -07:00
string-output.scrbl
string-ports.scrbl Minor pickinesses. 2012-10-15 15:03:53 -04:00
strings.scrbl Fix typo in `string-replace' keyword name. 2013-02-28 01:49:50 -05:00
struct-inspectors.scrbl logging: allow name in `log-message', report it in a log-receiver evt 2012-12-27 14:12:40 -06:00
struct.scrbl add examples for make-struct-info in docs 2013-01-26 14:06:04 -05:00
stx-certs.scrbl
stx-comp.scrbl
stx-expand.scrbl
stx-ops.scrbl doc fix 2012-08-12 20:17:29 -06:00
stx-param.scrbl Add examples & slight fix for stxparam docs 2013-01-06 16:26:02 -05:00
stx-patterns.scrbl support boxes in syntax patterns and templates 2013-03-21 09:06:15 -06:00
stx-props.scrbl
stx-taints.scrbl
stx-trans.scrbl minor doc repair 2013-01-18 11:03:46 -06:00
subprocess.scrbl reference: rerrange docs on synchronizable events 2012-12-25 07:20:58 -06:00
surrogate.scrbl
symbols.scrbl
sync.scrbl
syntax-model.scrbl terminology change again: "cross-phases persistent" modules 2013-02-27 08:53:43 -07:00
syntax-util.scrbl fix doc typo 2012-10-30 12:43:41 -04:00
syntax.scrbl Add an example for local-require 2013-02-21 14:45:45 -05:00
thread-cells.scrbl racket/base: add some missing predicates 2012-05-29 11:01:52 -06:00
thread-groups.scrbl references: link "A parameter that..." to the definition of "parameter" 2012-08-22 10:28:56 -06:00
thread-local.scrbl
threads.scrbl place channels & threads: improve GC 2013-03-25 05:15:24 -06:00
time.scrbl racket/date: change current-date', add date*->seconds' 2013-02-01 15:00:24 -08:00
trace.scrbl Newlines at EOFs. 2012-11-06 14:07:15 -05:00
units.scrbl Moved some mzlib library implementations to racket 2012-07-11 18:26:10 -04:00
unix-paths.scrbl
unsafe.scrbl extflonums 2013-01-28 18:17:06 -07:00
values.scrbl
vectors.scrbl
windows-paths.scrbl fix doc typo 2012-12-16 13:11:56 -07:00
write.scrbl doc repair 2012-08-27 20:17:06 -06:00