Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: JRuby 1.3RC2
-
Fix Version/s: JRuby 1.3
-
Component/s: None
-
Labels:None
-
Number of attachments :
Description
When a buffer is passed to a function either as a :buffer_out parameter, or the buffer was allocated via Buffer.new_out or Struct.new_out, then the backing array will be pinned by the JVM, instead of allocating temporary native memory.
Pinning arrays turns off garbage collection until all arrays are unpinned, so a :buffer_out param on a blocking function (e.g. read()) could block GC across all threads.
A patch to work around the problem in jruby will be forthcoming.
Activity
Wayne Meissner
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Resolution | Fixed [ 1 ] |
Charles Oliver Nutter
made changes -
| Status | Resolved [ 5 ] | Closed [ 6 ] |