-
Notifications
You must be signed in to change notification settings - Fork 184
Declaring a scripted class pins its interpreter #843
Copy link
Copy link
Open
Labels
as designedThis looks like an Issue/Bug but is actually an artifact based on how beanshell is designed.This looks like an Issue/Bug but is actually an artifact based on how beanshell is designed.concurrencyCross-interpreter/thread races, deadlocks, or GC/lifecycle pinningCross-interpreter/thread races, deadlocks, or GC/lifecycle pinninghelp wanted
Description
Activity
Metadata
Metadata
Assignees
Labels
as designedThis looks like an Issue/Bug but is actually an artifact based on how beanshell is designed.This looks like an Issue/Bug but is actually an artifact based on how beanshell is designed.concurrencyCross-interpreter/thread races, deadlocks, or GC/lifecycle pinningCross-interpreter/thread races, deadlocks, or GC/lifecycle pinninghelp wanted
After evaluating
class Foo { }in anInterpreter(whether or not it's ever instantiated), dropping the interpreter and runningSystem.gc()up to 50 times still leaves it reachable via aWeakReference. A script with no class declaration (x = 1;) is collected normally under the same driver. This looks like the same underlying cause as the class-manager pinning issues filed separately, though it was measured with a different driver (this one doesn't first move the static loader on to another interpreter).