Module: WGPU::LeakTracker
- Defined in:
- lib/wgpu/native_resource.rb
Class Method Summary collapse
-
.register(resource) ⇒ void
Registers a live native resource when leak debugging is enabled.
-
.unregister(resource) ⇒ void
Removes a resource from leak tracking.
-
.warn_remaining ⇒ void
Warns about and clears every tracked resource.
Class Method Details
.register(resource) ⇒ void
This method returns an undefined value.
Registers a live native resource when leak debugging is enabled.
20 21 22 23 24 25 26 27 |
# File 'lib/wgpu/native_resource.rb', line 20 def register(resource) return unless WGPU.debug_leaks object_id = resource.object_id description = describe(resource) @mutex.synchronize { @resources[object_id] = description } ObjectSpace.define_finalizer(resource, finalizer(object_id)) end |
.unregister(resource) ⇒ void
This method returns an undefined value.
Removes a resource from leak tracking.
33 34 35 |
# File 'lib/wgpu/native_resource.rb', line 33 def unregister(resource) @mutex.synchronize { @resources.delete(resource.object_id) } end |
.warn_remaining ⇒ void
This method returns an undefined value.
Warns about and clears every tracked resource.
40 41 42 43 44 45 46 47 |
# File 'lib/wgpu/native_resource.rb', line 40 def warn_remaining resources = @mutex.synchronize do remaining = @resources.values @resources.clear remaining end resources.each { |description| warn "WGPU resource leaked: #{description}" } end |