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