Skip to content

Commit

Permalink
Showing 2 changed files with 8 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/docs_main.cr
Original file line number Diff line number Diff line change
@@ -29,6 +29,7 @@ require "./socket"
require "./spec"
require "./string/**"
require "./thread"
require "./weak_ref"
require "./xml"
require "./yaml"
require "./benchmark"
7 changes: 7 additions & 0 deletions src/weak_ref.cr
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Weak Reference class that allows a referenced object to be garbage-collected.
#
# ```
# ref = WeakRef.new("oof".reverse)
# p ref.value # => "foo"
# GC.collect
# p ref.value # => nil
# ```
class WeakRef(T)
@target : Void*

@@ -10,6 +16,7 @@ class WeakRef(T)
end
end

# :nodoc:
def self.allocate
ptr = GC.malloc_atomic(instance_sizeof(self)).as(self)
set_crystal_type_id(ptr)

0 comments on commit 24c8321

Please sign in to comment.