Module: WGPU::NativeResource::Lifecycle

Defined in:
lib/wgpu/native_resource.rb

Instance Method Summary collapse

Instance Method Details

#initialize(*args, **kwargs) { ... } ⇒ NativeResource

Initializes a wrapper and registers its native-resource lifecycle.

Parameters:

  • args (Array)

    positional arguments forwarded to the resource

  • kwargs (Hash)

    keyword arguments forwarded to the resource

Yields:

  • block forwarded to the resource initializer

Returns:



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

#releasevoid

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