File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed
Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change 1+ module . exports = require ( "./overload" ) . EphemeronTable
Original file line number Diff line number Diff line change 1+ var EphemeronTable = require ( "./overload" )
2+ var OnCollect = EphemeronTable . OnCollect
3+ EphemeronTable = EphemeronTable . EphemeronTable
4+
5+ module . exports = WeakPointer ( target ) {
6+ var eph_table = new EphemeronTable ( )
7+ eph_table . set ( target , null )
8+ var executors = [ ]
9+ var alive = true
10+ this . get = function ( ) {
11+ return alive ?eph_table . keys ( ) [ 0 ] :undefined
12+ }
13+ this . register = function ( executor ) {
14+ if ( alive ) executors . push ( executor )
15+ return executor
16+ }
17+ OnCollect ( target , function collector ( ) {
18+ alive = false
19+ executors . forEach ( function ( executor ) {
20+ setTimeout ( executor , 0 )
21+ } )
22+ } )
23+ }
You can’t perform that action at this time.
0 commit comments