pike.git / lib / modules / Thread.pmod

version» Context lines:

pike.git/lib/modules/Thread.pmod:9:    mixed *buffer;    int ptr, num;       int size() { return num; }       mixed read()    {    mixed tmp;    object key=lock::lock();    while(!num) r_cond::wait(key); -  tmp=buffer[ptr++]; +  tmp=buffer[ptr]; +  buffer[ptr++] = 0; // Throw away any references.    ptr%=sizeof(buffer);    num--;    w_cond::signal();    return tmp;    }       void write(mixed v)    {    object key=lock::lock();    while(num == sizeof(buffer)) w_cond::wait(key);
pike.git/lib/modules/Thread.pmod:44:    mixed *buffer=allocate(16);    int r_ptr, w_ptr;       int size() { return w_ptr - r_ptr; }       mixed read()    {    mixed tmp;    object key=lock::lock();    while(!size()) r_cond::wait(key); -  tmp=buffer[r_ptr++]; +  tmp=buffer[r_ptr]; +  buffer[r_ptr++] = 0; // Throw away any references.    key=0;    return tmp;    }       void write(mixed v)    {    object key=lock::lock();    if(w_ptr >= sizeof(buffer))    {    buffer=buffer[r_ptr..];