mirror of https://github.com/lukechilds/node.git
Browse Source
By doing this users can use a Map object for storing information instead of modifying the handle object. PR-URL: https://github.com/nodejs/node/pull/4600 Reviewed-By: Trevor Norris <trev.norris@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>v5.x
Andreas Madsen
9 years ago
committed by
Rod Vagg
2 changed files with 60 additions and 2 deletions
@ -0,0 +1,57 @@ |
|||
'use strict'; |
|||
|
|||
require('../common'); |
|||
const fs = require('fs'); |
|||
const assert = require('assert'); |
|||
const async_wrap = process.binding('async_wrap'); |
|||
|
|||
const storage = new Map(); |
|||
async_wrap.setupHooks(init, pre, post, destroy); |
|||
async_wrap.enable(); |
|||
|
|||
function init(provider, uid) { |
|||
storage.set(uid, { |
|||
init: true, |
|||
pre: false, |
|||
post: false, |
|||
destroy: false |
|||
}); |
|||
} |
|||
|
|||
function pre(uid) { |
|||
storage.get(uid).pre = true; |
|||
} |
|||
|
|||
function post(uid) { |
|||
storage.get(uid).post = true; |
|||
} |
|||
|
|||
function destroy(uid) { |
|||
storage.get(uid).destroy = true; |
|||
} |
|||
|
|||
fs.access(__filename, function(err) { |
|||
assert.ifError(err); |
|||
}); |
|||
|
|||
fs.access(__filename, function(err) { |
|||
assert.ifError(err); |
|||
}); |
|||
|
|||
async_wrap.disable(); |
|||
|
|||
process.once('exit', function() { |
|||
assert.strictEqual(storage.size, 2); |
|||
|
|||
for (const item of storage) { |
|||
const uid = item[0]; |
|||
const value = item[1]; |
|||
assert.strictEqual(typeof uid, 'number'); |
|||
assert.deepStrictEqual(value, { |
|||
init: true, |
|||
pre: true, |
|||
post: true, |
|||
destroy: true |
|||
}); |
|||
} |
|||
}); |
Loading…
Reference in new issue