[#5218] Ruby Book Eng tl, ch1 question — Jon Babcock <jon@...>

13 messages 2000/10/02

[#5404] Object.foo, setters and so on — "Hal E. Fulton" <hal9000@...>

OK, here is what I think I know.

14 messages 2000/10/11

[#5425] Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...>

18 messages 2000/10/11
[#5427] RE: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — OZAWA -Crouton- Sakuro <crouton@...> 2000/10/11

At Thu, 12 Oct 2000 03:49:46 +0900,

[#5429] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Jon Babcock <jon@...> 2000/10/11

Thanks for the input.

[#5432] Re: Ruby Book Eng. tl, 9.8.11 -- seishitsu ? — Yasushi Shoji <yashi@...> 2000/10/11

At Thu, 12 Oct 2000 04:53:41 +0900,

[#5516] Re: Some newbye question — ts <decoux@...>

>>>>> "D" == Davide Marchignoli <marchign@di.unipi.it> writes:

80 messages 2000/10/13
[#5531] Re: Some newbye question — matz@... (Yukihiro Matsumoto) 2000/10/14

Hi,

[#5544] Re: Some newbye question — Davide Marchignoli <marchign@...> 2000/10/15

On Sat, 14 Oct 2000, Yukihiro Matsumoto wrote:

[#5576] Re: local variables (nested, in-block, parameters, etc.) — Dave Thomas <Dave@...> 2000/10/16

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#5617] Re: local variables (nested, in-block, parameters, etc.) — "Brian F. Feldman" <green@...> 2000/10/16

Dave Thomas <Dave@thomases.com> wrote:

[#5705] Dynamic languages, SWOT ? — Hugh Sasse Staff Elec Eng <hgs@...>

There has been discussion on this list/group from time to time about

16 messages 2000/10/20
[#5712] Re: Dynamic languages, SWOT ? — Charles Hixson <charleshixsn@...> 2000/10/20

Hugh Sasse Staff Elec Eng wrote:

[#5882] [RFC] Towards a new synchronisation primitive — hipster <hipster@...4all.nl>

Hello fellow rubyists,

21 messages 2000/10/26

[ruby-talk:5901] Re: [RFC] Towards a new synchronisation primitive

From: Robert Feldt <feldt@...>
Date: 2000-10-27 08:33:58 UTC
List: ruby-talk #5901
On Fri, 27 Oct 2000, hipster wrote:

> Hello fellow rubyists,
> 
> Matz has occasionally expressed his worries about the synchronization
> primitive used in Ruby today. He asked for suggestions regarding alternate
> schemes, and guess what, I wrote one. The following discusses object locks,
> a concept known from Java and others. These object locks would replace the
> current Thread.critical notation.
> 
> I have no prototype implementation of these ideas. This text is intended as
> a basis for discussion to flesh things out.
> 
> I've tried to define things as concise as possible, but given the fact that
> English is not my native tongue, ambiguities may remain. Please abide with
> me.
> 
> 	Michel
> 
I've also been discussing alternatives to the current thread synch
primitives with matz following the bug I found in Queue. Some
ideas/issues:

* We can either introduce new syntax / new primitives into the language or
choose a simple but sufficient primitive in the language (much like
Thread.critical today) and then implement mutexes et al on top of that
(MutexM in RAA is similar to your proposed solution but implemented in the
current synch model).
	* pros with second model is that you can choose the synch
	  primitive mostly suited to your needs; there is no one mandated
	  by the language.
	* cons with sencond model is that people might be tempted to use
	  Thread.critical even though a mutex or similar might do, thus
	  unnecessarily halting the scheduling / suffering
	  performance-wise. (ways to overcome this might be to have Mutex,
	  Semaphore, Monitor et al in the standard lib (in the lib ref for
	  example) so that they are as visible as Thread.critical)
	* lots of more pros/cons...?

* Whatever new solution we choose we must be aware of and
probably handle the priority inversion problem, ie. a medium-prio thread
getting processing time when a high-prio thread is waiting on mutex (or
other synch primitive) held by low-prio thread. One good way to solve this
is priority inheritance where the low-prio thread gets the prio of the
high-prio thread while having the mutex lock.

* We should probably start by listing the downside of todays model and
what req's we have on a new one.

Regards,

Robert



In This Thread