keep_alive call policy (analogous to Boost.Python's with_custodian_and_ward, fixes #62)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
from __future__ import print_function
|
||||
import sys
|
||||
import gc
|
||||
sys.path.append('.')
|
||||
|
||||
from example import Parent, Child
|
||||
|
||||
if True:
|
||||
p = Parent()
|
||||
p.addChild(Child())
|
||||
gc.collect()
|
||||
print(p)
|
||||
p = None
|
||||
|
||||
gc.collect()
|
||||
print("")
|
||||
|
||||
if True:
|
||||
p = Parent()
|
||||
p.returnChild()
|
||||
gc.collect()
|
||||
print(p)
|
||||
p = None
|
||||
|
||||
gc.collect()
|
||||
print("")
|
||||
|
||||
if True:
|
||||
p = Parent()
|
||||
p.addChildKeepAlive(Child())
|
||||
gc.collect()
|
||||
print(p)
|
||||
p = None
|
||||
gc.collect()
|
||||
print("")
|
||||
|
||||
if True:
|
||||
p = Parent()
|
||||
p.returnChildKeepAlive()
|
||||
gc.collect()
|
||||
print(p)
|
||||
p = None
|
||||
|
||||
gc.collect()
|
||||
print("")
|
||||
print("Terminating..")
|
||||
Reference in New Issue
Block a user