| // Flags: --expose-gc |
| |
| 'use strict'; |
| const common = require('../common'); |
| if (!common.hasCrypto) |
| common.skip('missing crypto'); |
| const http2 = require('http2'); |
| const makeDuplexPair = require('../common/duplexpair'); |
| const tick = require('../common/tick'); |
| |
| // This tests that running garbage collection while an Http2Session has |
| // a write *scheduled*, it will survive that garbage collection. |
| |
| { |
| // This creates a session and schedules a write (for the settings frame). |
| let client = http2.connect('http://localhost:80', { |
| createConnection: common.mustCall(() => makeDuplexPair().clientSide) |
| }); |
| |
| // First, wait for any nextTicks() and their responses |
| // from the `connect()` call to run. |
| tick(10, () => { |
| // This schedules a write. |
| client.settings(http2.getDefaultSettings()); |
| client = null; |
| global.gc(); |
| }); |
| } |