Module: WGPU::NativeResource::Lifecycle
- Defined in:
- lib/wgpu/native_resource.rb
Instance Method Summary collapse
-
#initialize(*args, **kwargs) { ... } ⇒ NativeResource
Initializes a wrapper and registers its native-resource lifecycle.
-
#release ⇒ void
Releases a resource once and unregisters it from leak tracking.
Instance Method Details
#initialize(*args, **kwargs) { ... } ⇒ NativeResource
Initializes a wrapper and registers its native-resource lifecycle.
213 214 215 216 217 218 219 220 |
# File 'lib/wgpu/native_resource.rb', line 213 def initialize(*args, **kwargs, &block) super initialize_native_resource(label: kwargs.fetch(:label, UNSET)) attach_device_callback_lifetime_from_parent initialized = true ensure release if !initialized && @handle && !released? end |
#release ⇒ void
This method returns an undefined value.
Releases a resource once and unregisters it from leak tracking.
225 226 227 228 229 230 231 232 233 |
# File 'lib/wgpu/native_resource.rb', line 225 def release(...) return if released? result = super release_device_callback_lifetime @released = true LeakTracker.unregister(self) result end |