GoLang Weakref::release

request it (397)
GoLang replacement for PHP's Weakref::release [edit | history]



Do you know a GoLang replacement for PHP's Weakref::release? Write it!

PHP Weakref::release

PHP original manual for Weakref::release [ show | php.net ]

Weakref::release

(PECL weakref >= 0.1.0)

Weakref::releaseReleases a previously acquired reference

Description

public bool Weakref::release ( void )

Releases a previously acquired reference, potentially turning a strong reference back into a weak reference.

The Weakref instance maintains an internal acquired counter to track outstanding strong references. If the call to Weakref::release() is successful, this counter will be decremented by one. Once this counter reaches zero, the strong reference is turned back into a weak reference.

Parameters

This function has no parameters.

Return Values

Returns TRUE if the reference was previously acquired and thus could be released, FALSE otherwise.

Examples

Example #1 Weakref::release() example

<?php
class MyClass {
    public function 
__destruct() {
        echo 
"Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo 
"Unsetting o1...\n";
unset(
$o1);

$o2 $r1->get();

$r1->release();

echo 
"Unsetting o2...\n";
unset(
$o2);
?>

The above example will output:

Unsetting o1...
Unsetting o2...
Destroying object!

See Also