<commit_before>var slice = [].slice

function Vestibule () {
    this._waiting = []
}

Vestibule.prototype.enter = function (callback) {
    var cookie = {}
    this._waiting.push({
        cookie: cookie,
        callback: callback
    })
    return cookie
}

Vestibule.prototype.leave = function (cookie) {
    for (var i = 0, I = this._waiting.length; i < I; i++) {
        if (this._waiting[i].cookie === cookie) {
            this._waiting.splice(i, 1)
            break
        }
    }
}

Vestibule.prototype.notify = function () {
    var vargs = slice.call(arguments)
    this._waiting.splice(0, this._waiting.length).forEach(function (waiting) {
        waiting.callback.apply(null, vargs)
    })
}

module.exports = Vestibule<commit_msg>Notes.<commit_after>var slice = [].slice

function Vestibule () {
    this._waiting = []
}

Vestibule.prototype.enter = function (callback) {
    var cookie = {}
    this._waiting.push({
        cookie: cookie,
        callback: callback
    })
    return cookie
}

Vestibule.prototype.leave = function (cookie) {
    for (var i = 0, I = this._waiting.length; i < I; i++) {
        if (this._waiting[i].cookie === cookie) {
            this._waiting.splice(i, 1)
            break
        }
    }
}

// To perform on next tick: `setImmediate(vestibule.notify.bind(vestibule))`.
Vestibule.prototype.notify = function () {
    var vargs = slice.call(arguments)
    this._waiting.splice(0, this._waiting.length).forEach(function (waiting) {
        waiting.callback.apply(null, vargs)
    })
}

module.exports = Vestibule
{'fraction_non_alphanumeric': 0.13993610223642172, 'fraction_numerical': 0.0038338658146964857, 'mean_word_length': 2.5753424657534247, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2520888', 'n_tokens_mistral': 526, 'n_tokens_neox': 522, 'n_words': 101}