[#44036] [ruby-trunk - Feature #6242][Open] Ruby should support lists — "shugo (Shugo Maeda)" <redmine@...>

20 messages 2012/04/01

[#44084] [ruby-trunk - Bug #6246][Open] 1.9.3-p125 intermittent segfault — "jshow (Jodi Showers)" <jodi@...>

22 messages 2012/04/02

[#44156] [ruby-trunk - Feature #6265][Open] Remove 'useless' 'concatenation' syntax — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

45 messages 2012/04/06

[#44163] [ruby-trunk - Bug #6266][Open] encoding related exception with recent integrated psych — "jonforums (Jon Forums)" <redmine@...>

10 messages 2012/04/06

[#44303] [ruby-trunk - Feature #6284][Open] Add composition for procs — "pabloh (Pablo Herrero)" <pablodherrero@...>

57 messages 2012/04/12

[#44349] [ruby-trunk - Feature #6293][Open] new queue / blocking queues — "tenderlovemaking (Aaron Patterson)" <aaron@...>

10 messages 2012/04/13

[#44402] [ruby-trunk - Feature #6308][Open] Eliminate delegation from WeakRef — "headius (Charles Nutter)" <headius@...>

20 messages 2012/04/17

[#44403] [ruby-trunk - Feature #6309][Open] Add a reference queue for weak references — "headius (Charles Nutter)" <headius@...>

15 messages 2012/04/17

[#44533] [ruby-trunk - Bug #6341][Open] SIGSEGV: Thread.new { fork { GC.start } }.join — "rudolf (r stu3)" <redmine@...>

24 messages 2012/04/22

[#44630] [ruby-trunk - Feature #6361][Open] Bitwise string operations — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>

31 messages 2012/04/26

[#44648] [ruby-trunk - Feature #6367][Open] #same? for Enumerable — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>

16 messages 2012/04/26

[#44704] [ruby-trunk - Feature #6373][Open] public #self — "trans (Thomas Sawyer)" <transfire@...>

61 messages 2012/04/27

[#44748] [ruby-trunk - Feature #6376][Open] Feature lookup and checking if feature is loaded — "trans (Thomas Sawyer)" <transfire@...>

13 messages 2012/04/28

[ruby-core:44307] Re: Questions about thread performance (with benchmark included)

From: Robert Klemme <shortcutter@...>
Date: 2012-04-12 12:35:24 UTC
List: ruby-core #44307
On Tue, Apr 10, 2012 at 5:33 AM, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
> On 2012年04月09日 22:37, Rodrigo Rosenfeld Rosas wrote:
>> I don't think any threaded application can be lock-free, including a language interpreter. But having locks (instead of a single global lock) doesn't mean you can't use the full power of processors.
>
> Technically  speaking, there  are  reasons why  MRI  cannot take  this
> approach.  One  reason for it is  that MRI's GC needs  a giant locking
> because no  modifications to  any objects shall  be allowed  during GC
> (this restriction can theoretically be weakened, but in practice it is
> very hard).

Right.  One just needs to look at the 7 years Sun needed to take G1
from prototype to production ready.

>  Another  reason is that most extension  libraries are not
> designed to  be multi-thread ready;  for instance the  SQLite database
> does  not  support  multiple  transactions  per  a  connection,  which
> effectively kills multi-threaded usage.
> cf: http://www.sqlite.org/faq.html#q6

I don't think this is a good argument: in Java land most JDBC
connection implementations are not multithreaded (in fact it's usually
more a restriction of the backend) and all JEE application servers
happily employ multithreading.  It's not too hard to ensure things are
thread local which cannot be used concurrently.

Also, there is the core library which would of course have to be
thread safe if MRI gets rid of GIL and which provides enough
functionality to create useful MT applications.

> Someone with skills is always welcomed!

Now I only need the time... :-)

Kind regards

robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

In This Thread

Prev Next