Record Android generation anti-pattern
ober
9490577eb787f446256ea84a3ab2f9993030fafa
--- a/data/anti-patterns.sexp +++ b/data/anti-patterns.sexp @@ -4509,4 +4509,26 @@ "jerboa_howto" "jerboa_module_exports" "jerboa_function_signature" - "jerboa_verify"))) + "jerboa_verify")) + (("advice" + . + "Inspect vendor/ChezScheme/c/thread.c and the activation macros in types.h for the current runtime. Measure request-to-last-thread-deactivated time separately from GC work. Audit non-collect-safe FFI and plain contended mutex-acquire independently; do not propose a collector rewrite before proving the rendezvous bottleneck.") + ("avoid" + . + "Do not infer that Chez condition-wait pins the garbage collector from a hang report or treat it the same as contended mutex-acquire. In the current Chez runtime, S_condition_wait deactivates the Scheme thread before blocking and reactivates it after wakeup.") + ("id" . "chez-condition-wait-gc-safety-assumption") + ("kinds" "docs" "debug-error" "ffi") + ("pattern" + . + "condition-wait.*(blocks|pins|deadlocks).*GC|GC.*condition-wait.*(unsafe|deadlock)") + ("severity" . "medium") + ("tags" "chez" "gc" "threads" "condition-wait" "rendezvous" + "ffi") + ("title" + . + "Do Not Classify Chez condition-wait as GC-unsafe Without Source Verification") + ("tools" + "jerboa_anti_pattern_lookup" + "jerboa_request_advisor" + "rg vendor/ChezScheme/c/thread.c" + "make check-docs")))