mirror of https://github.com/lukechilds/node.git
Ryan Dahl
14 years ago
3 changed files with 69 additions and 76 deletions
@ -0,0 +1,55 @@ |
|||
function init(list) { |
|||
list._idleNext = list; |
|||
list._idlePrev = list; |
|||
} |
|||
exports.init = init; |
|||
|
|||
|
|||
// show the most idle item
|
|||
function peek(list) { |
|||
if (list._idlePrev == list) return null; |
|||
return list._idlePrev; |
|||
} |
|||
exports.peek = peek; |
|||
|
|||
|
|||
// remove the most idle item from the list
|
|||
function shift(list) { |
|||
var first = list._idlePrev; |
|||
remove(first); |
|||
return first; |
|||
} |
|||
exports.shift = shift; |
|||
|
|||
|
|||
// remove a item from its list
|
|||
function remove(item) { |
|||
if (item._idleNext) { |
|||
item._idleNext._idlePrev = item._idlePrev; |
|||
} |
|||
|
|||
if (item._idlePrev) { |
|||
item._idlePrev._idleNext = item._idleNext; |
|||
} |
|||
|
|||
item._idleNext = null; |
|||
item._idlePrev = null; |
|||
} |
|||
exports.remove = remove; |
|||
|
|||
|
|||
// remove a item from its list and place at the end.
|
|||
function append(list, item) { |
|||
remove(item); |
|||
item._idleNext = list._idleNext; |
|||
list._idleNext._idlePrev = item; |
|||
item._idlePrev = list; |
|||
list._idleNext = item; |
|||
} |
|||
exports.append = append; |
|||
|
|||
|
|||
function isEmpty(list) { |
|||
return list._idleNext === list; |
|||
} |
|||
exports.isEmpty = isEmpty; |
Loading…
Reference in new issue