[#9382] the sign of a number is omitted when squaring it. -2**2 vs (-2)**2 — <noreply@...>

Bugs item #6468, was opened at 2006-11-03 17:25

9 messages 2006/11/03

[#9385] merge YARV into Ruby — SASADA Koichi <ko1@...>

Hi,

42 messages 2006/11/04
[#9405] Re: merge YARV into Ruby — "Kirill Shutemov" <k.shutemov@...> 2006/11/06

On 11/4/06, SASADA Koichi <ko1@atdot.net> wrote:

[#9406] Re: merge YARV into Ruby — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2006/11/06

On Monday 06 November 2006 16:01, Kirill Shutemov wrote:

[#9417] Re: merge YARV into Ruby — Sean Russell <ser@...> 2006/11/06

On Monday 06 November 2006 10:15, Sylvain Joyeux wrote:

[#9428] Re: merge YARV into Ruby — "Kirill Shutemov" <k.shutemov@...> 2006/11/06

On 11/6/06, Sean Russell <ser@germane-software.com> wrote:

[#9402] fast mutexes for 1.8? — MenTaLguY <mental@...>

Many people have been using Thread.critical for locking because Ruby

24 messages 2006/11/06

[#9450] Bikeshed: No more Symbol < String? — Kornelius Kalnbach <murphy@...>

Hi ruby-core!

21 messages 2006/11/07
[#9452] Re: Bikeshed: No more Symbol < String? — Yukihiro Matsumoto <matz@...> 2006/11/07

Hi,

[#9493] Future Plans for Ruby 1.8 Series — URABE Shyouhei <shyouhei@...>

This week Japanese rubyists were talking about the future of ruby_1_8

13 messages 2006/11/09

[#9515] External entropy pool for random number generator — "Kirill Shutemov" <k.shutemov@...>

In the attachment patch which allow to use external entropy pool for

13 messages 2006/11/11
[#9522] Re: External entropy pool for random number generator — "Nobuyoshi Nakada" <nobu@...> 2006/11/13

Hi,

[#9554] Ruby 1.[89].\d+ and beyond. — Hugh Sasse <hgs@...>

I've been thinking about how version numbers are restricting what we can do.

30 messages 2006/11/16
[#9561] Re: Ruby 1.[89].\d+ and beyond. — Eric Hodel <drbrain@...7.net> 2006/11/16

[#9563] Re: Ruby 1.[89].\d+ and beyond. — Hugh Sasse <hgs@...> 2006/11/16

On Fri, 17 Nov 2006, Eric Hodel wrote:

[#9564] Re: Ruby 1.[89].\d+ and beyond. — Eric Hodel <drbrain@...7.net> 2006/11/16

On Nov 16, 2006, at 12:02 PM, Hugh Sasse wrote:

[#9571] Re: Ruby 1.[89].\d+ and beyond. — "Robert Dober" <robert.dober@...> 2006/11/19

On 11/16/06, Eric Hodel <drbrain@segment7.net> wrote:

[#9604] #ancestors never includes the singleton class (inconsistent) — <noreply@...>

Bugs item #6820, was opened at 2006-11-22 08:49

12 messages 2006/11/22
[#9618] Re: [ ruby-Bugs-6820 ] #ancestors never includes the singleton class (inconsistent) — Yukihiro Matsumoto <matz@...> 2006/11/25

Hi,

[#9629] Re: [ ruby-Bugs-6820 ] #ancestors never includes the singleton class (inconsistent) — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2006/11/27

> It is supposed to. Singleton classes (or eigenclasses, if you want to

Re: fast mutexes for 1.8?

From: Brent Roman <brent@...>
Date: 2006-11-16 04:30:41 UTC
List: ruby-core #9553
>
>FWIW, I don't think there's a strong reason to limit it to Fixnums; you
>probably had atomic_t in mind, but that won't be an issue for e.g. JRuby
>and probably other implementations.  May as well let Atomic store a
>reference to any Object.
>
>-mental
>
Yes, I agree that there is no reason to limit the Atomic class to Fixnums.
The only important behavior is that assignment be atomic and that it
return the previous value, rather than the new one.


>> The fair approach is to pass the lock from the thread releasing it,
>> directly to the thread that had been waiting the longest for the it.
>> It appears that both approaches have been tried at various times
>> in the history Linux threading library (in glibc).
>
> Kirk Haines wrote:
>
> This is essentially what the current Mutex class does.  Waiting
> threads go into an array that is used as a queue.  As new threads go
> into one end of the queue, threads are removed from the other end.
>

This is what the Mutex class *proports* to do.  However, if you look
closely at the code
you will see that the lock is released before the next thread is
started.  As I (and
others) have noted, this gives a third thread an opportunity to "jump
the queue" by
acquiring the lock before the intended thread acquires it.  I've had
multi-threaded
code that relies on "fair" queuing fail (very intermittently) with the
stock Ruby
Mutexes due this queue jumping.  It's real and very difficult to debug.
That why we now have our own varient of the Mutex class that remains "fair"
by altering the lock's owner and starting the recipient thread without ever
releasing the lock, thereby executing a controlled handoff rather than a
free-for-all.

-- 

 Brent Roman
 mailto:brent@mbari.org  http://www.mbari.org/~brent


In This Thread

Prev Next