Method code for $mutex._del_from_queue()

[Turn on line numbering]
arg val;
var tid, s, q;

q = (| queues[val] |) || [];
(| (queues = queues.del(val)) |);
for tid in (q) {
    if ((s = suspended[tid]) == 1) {
        suspended = suspended.del(tid);
        (| $scheduler.resume(tid) |);
    } else {
        suspended = suspended.add(tid, s - 1);
    }
}

// $#Edited: 15 Jul 97 02:50 $user_bruce

["// Created 11-Mar-1997 as a part of ColdCore, see: @help Credit"]

the Cold Dark