pike.git / lib / modules / Thread.pmod

version» Context lines:

pike.git/lib/modules/Thread.pmod:801:    ret = buffer[ptr..]+buffer[..num-(sizeof(buffer)-ptr)-1];    }    ptr=num=0;    buffer=allocate(sizeof(buffer)); // Throw away any references.    break;    }       return ret;    }    -  int write(mixed value) -  { -  if (num == sizeof(buffer)) error ("Deadlock detected - fifo full.\n"); -  write_unlocked (value); -  return num; -  } -  +     int try_write(mixed value)    {    if (num == sizeof (buffer)) return 0;    buffer[(ptr + num) % sizeof(buffer)] = value;    return ++num;    }    -  +  int write(mixed value) +  { +  if (!try_write(value)) error("Deadlock detected - fifo full.\n"); +  return num; +  } +     static void create(int|void size)    {    write_tres=0;    buffer=allocate(read_tres=size || 128);    }       static string _sprintf( int f )    {    return f=='O' && sprintf( "%O(%d / %d)", this_program,    size(), read_tres );