Method code for $mutex.release()

[Turn on line numbering]
arg @values;
var tid, t, vlist, i, obj;

values ?= [0];
tid = task_id();
vlist = tasks[tid];
for obj in (.descendants())
    obj.release(@values);
for i in (values) {
    vlist = vlist.setremove(i);
    ._del_from_lock(tid, i);
}
if (vlist)
    tasks = tasks.add(tid, vlist);
else
    tasks = tasks.del(tid);

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

the Cold Dark