| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent f4faedf commit 8288f57
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,7 @@ | |||
| 1 | 1 | // Flags: --expose_gc | |
| 2 | 2 | // | |
| 3 | 3 | import '../common/index.mjs'; | |
| 4 | + import { gcUntil } from '../common/gc.js'; | ||
| 4 | 5 | import { describe, it } from 'node:test'; | |
| 5 | 6 | ||
| 6 | 7 | function makeSubsequentCalls(limit, done, holdReferences = false) { | |
@@ -141,37 +142,29 @@ it('drops settled dependant signals when signal is composite', (t, done) => { | |||
| 141 | 142 | ); | |
| 142 | 143 | ||
| 143 | 144 | setImmediate(() => { | |
| 144 | - global.gc(); | ||
| 145 | + global.gc({ execution: 'async' }).then(() => { | ||
| 146 | + t.assert.strictEqual(composedSignalRef.deref(), undefined); | ||
| 147 | + t.assert.strictEqual(controllers[0].signal[kDependantSignals].size, 2); | ||
| 148 | + t.assert.strictEqual(controllers[1].signal[kDependantSignals].size, 1); | ||
| 145 | 149 | ||
| 146 | - t.assert.strictEqual(composedSignalRef.deref(), undefined); | ||
| 147 | - t.assert.strictEqual(controllers[0].signal[kDependantSignals].size, 2); | ||
| 148 | - t.assert.strictEqual(controllers[1].signal[kDependantSignals].size, 1); | ||
| 149 | - | ||
| 150 | - setImmediate(() => { | ||
| 151 | - t.assert.strictEqual(controllers[0].signal[kDependantSignals].size, 0); | ||
| 152 | - t.assert.strictEqual(controllers[1].signal[kDependantSignals].size, 0); | ||
| 150 | + setImmediate(() => { | ||
| 151 | + t.assert.strictEqual(controllers[0].signal[kDependantSignals].size, 0); | ||
| 152 | + t.assert.strictEqual(controllers[1].signal[kDependantSignals].size, 0); | ||
| 153 | 153 | ||
| 154 | - done(); | ||
| 154 | + done(); | ||
| 155 | + }); | ||
| 155 | 156 | }); | |
| 156 | 157 | }); | |
| 157 | 158 | }); | |
| 158 | 159 | ||
| 159 | 160 | it('drops settled signals even when there are listeners', (t, done) => { | |
| 160 | - runWithOrphanListeners(limit, (signalRefs) => { | ||
| 161 | - setImmediate(() => { | ||
| 162 | - global.gc(); | ||
| 163 | - setImmediate(() => { | ||
| 164 | - global.gc(); // One more call needed to clean up the deeper composed signals | ||
| 165 | - setImmediate(() => { | ||
| 166 | - global.gc(); // One more call needed to clean up the deeper composed signals | ||
| 167 | - | ||
| 168 | - const unGCedSignals = [...signalRefs].filter((ref) => ref.deref()); | ||
| 169 | - | ||
| 170 | - t.assert.strictEqual(unGCedSignals.length, 0); | ||
| 161 | + runWithOrphanListeners(limit, async (signalRefs) => { | ||
| 162 | + await gcUntil('all signals are GCed', () => { | ||
| 163 | + const unGCedSignals = [...signalRefs].filter((ref) => ref.deref()); | ||
| 171 | 164 | ||
| 172 | - done(); | ||
| 173 | - }); | ||
| 174 | - }); | ||
| 165 | + return unGCedSignals.length === 0; | ||
| 175 | 166 | }); | |
| 167 | + | ||
| 168 | + done(); | ||
| 176 | 169 | }); | |
| 177 | 170 | }); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments