[#29270] Proposal: Module#thunk_method — Charles Oliver Nutter <headius@...>

Many people use define_method solely so they can define a new method

13 messages 2010/04/06

[#29293] URI.(un)escape deprecated? — Marc-Andre Lafortune <ruby-core-mailing-list@...>

Hi.

16 messages 2010/04/07
[#29366] Re: URI.(un)escape deprecated? — Tanaka Akira <akr@...> 2010/04/08

2010/4/7 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:

[#29313] [Bug #3112] require "yaml" doesn't use psych as default — Usaku NAKAMURA <redmine@...>

Bug #3112: require "yaml" doesn't use psych as default

28 messages 2010/04/08
[#29315] [Bug #3112] require "yaml" doesn't use psych as default — Yui NARUSE <redmine@...> 2010/04/08

Issue #3112 has been updated by Yui NARUSE.

[#29336] Re: [Bug #3112] require "yaml" doesn't use psych as default — Aaron Patterson <aaron@...> 2010/04/08

On Thu, Apr 08, 2010 at 02:06:55PM +0900, Yui NARUSE wrote:

[#29395] [Bug #3119] [Patch] "IOError (closed stream)" error with tempfile unlink then close usage — Simon Nicholls <redmine@...>

Bug #3119: [Patch] "IOError (closed stream)" error with tempfile unlink then close usage

9 messages 2010/04/09

[#29427] [Bug #3124] SocketError on SnowLeopard (during make test-all) — Aaron Patterson <redmine@...>

Bug #3124: SocketError on SnowLeopard (during make test-all)

10 messages 2010/04/11

[#29462] [Feature #3131] add Kernel#Hash() method like Kernel#Array() — Suraj Kurapati <redmine@...>

Feature #3131: add Kernel#Hash() method like Kernel#Array()

10 messages 2010/04/11

[#29464] [Bug #3132] …/nokogiri-1.4.1/ext/nokogiri/nokogiri.bundle: [BUG] Bus Error — Ashley Williams <redmine@...>

Bug #3132: …/nokogiri-1.4.1/ext/nokogiri/nokogiri.bundle: [BUG] Bus Error

8 messages 2010/04/12

[#29486] [Bug #3140] gem activation has changed between 1.8 and 1.9 — Aaron Patterson <redmine@...>

Bug #3140: gem activation has changed between 1.8 and 1.9

102 messages 2010/04/13
[#29489] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Evan Phoenix <evan@...> 2010/04/13

After a brief discussion with Eric Hodel about this, there are a few =

[#29513] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Evan Phoenix <evan@...> 2010/04/14

Is there any comment on this? This is a big bug in 1.9.2 that we'd like =

[#29526] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Rich Kilmer <rich.kilmer@...> 2010/04/15

I wrote this original code in gem_prelude.

[#31002] [Bug #3140] gem activation has changed between 1.8 and 1.9 — Aaron Patterson <redmine@...> 2010/07/02

Issue #3140 has been updated by Aaron Patterson.

[#31003] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Yusuke ENDOH <mame@...> 2010/07/02

Hi,

[#31005] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Yehuda Katz <wycats@...> 2010/07/02

We are about to ship a version of Ruby with a built in package manager with

[#31104] [Bug #3140] gem activation has changed between 1.8 and 1.9 — Yusuke Endoh <redmine@...> 2010/07/07

Issue #3140 has been updated by Yusuke Endoh.

[#31108] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Roger Pack <rogerdpack2@...> 2010/07/07

> I've commited the patch to trunk.

[#31193] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Yusuke ENDOH <mame@...> 2010/07/11

Hi,

[#31223] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Roger Pack <rogerdpack2@...> 2010/07/12

> Roger, could you re-try to build from scratch? =A0Could you apply

[#31215] [Bug #3140] gem activation has changed between 1.8 and 1.9 — Yehuda Katz <redmine@...> 2010/07/12

Issue #3140 has been updated by Yehuda Katz.

[#31218] Re: [Bug #3140] gem activation has changed between 1.8 and 1.9 — Yukihiro Matsumoto <matz@...> 2010/07/12

Hi,

[#29528] [Bug #3150] net/https peer verification doesn't do anything — Hongli Lai <redmine@...>

Bug #3150: net/https peer verification doesn't do anything

11 messages 2010/04/15

[#29578] [Bug #3163] SyntaxError when using variable which is also a method in current scope with a Symbol argument — Benoit Daloze <redmine@...>

Bug #3163: SyntaxError when using variable which is also a method in current scope with a Symbol argument

17 messages 2010/04/17
[#29583] [Bug #3163] SyntaxError when using variable which is also a method in current scope with a Symbol argument — caleb clausen <redmine@...> 2010/04/18

Issue #3163 has been updated by caleb clausen.

[#29641] [Feature #3176] Thread#priority= should actually do something — caleb clausen <redmine@...>

Feature #3176: Thread#priority= should actually do something

28 messages 2010/04/19

[#29710] [Bug #3185] File.expand_path repeats forward slashes at the beginning of the path — Brian Ford <redmine@...>

Bug #3185: File.expand_path repeats forward slashes at the beginning of the path

10 messages 2010/04/21

[#29835] [Bug #3212] ConditionVariable may become inconsistent for interrupted threads — Sylvain Joyeux <redmine@...>

Bug #3212: ConditionVariable may become inconsistent for interrupted threads

24 messages 2010/04/28

[#29868] [Bug:trunk] assert now passes non-boolean result — Nobuyoshi Nakada <nobu@...>

Hi,

15 messages 2010/04/29

[ruby-core:29586] [Bug #1169] Thread#priority still doesn't work

From: caleb clausen <redmine@...>
Date: 2010-04-18 02:28:31 UTC
List: ruby-core #29586
Issue #1169 has been updated by caleb clausen.


So, you've disabled the test which demonstrates the problem. You've documented that the desired behavior is now going to be optional. And now, you've closed the ticket which reported the problem. However:

          >>>the bug still exists<<<

I do not think this issue should have been closed. Can it be reopened, please? Open bug reports are the collective memory about where the problems in a system are. When you close a report without fixing the reported bug, it's like saying, "We're just going to forget that this problem was ever noticed." But it doesn't make the problem go away; it just makes it harder to know that it's there.

Should thread priorities be respected or not? If they ought to be respected, then it is better to have a note somewhere that keeps track of the fact that they may not be working. I say it's better to leave unresolved bug reports open than to let the bug tracker reflect a false state of affairs.  

I don't think you need access to the realtime scheduling algorithms (SCHED_RR, SCHED_FIFO) to get higher priority threads to receive more cputime. Normal (fair) scheduling (SCHED_OTHER) should be sufficient. After all, the syscalls nice(2), setpriority(2), and pthread_setschedparam(3) presumably work for non-realtime processes/threads.

However, I'm now starting to theorize that there's an interaction here between the scheduler and the GIL which causes priorities to be effectively ignored. Imagine this:

2 threads running, A and B; A.priority > B.priority
initially, A runs (so it holds GIL)
B is waiting on GIL 
after a while (10ms I think) scheduler forces a context switch
so now A unlocks GIL, then immediately relocks it (yielding time to other threads)
but before A can relock, B is scheduled, since it was waiting. Now B owns GIL.
after another 10ms, B yields time back to A
...and so on

So, A and B are effectively alternating timeslices, each getting roughly equal amounts of time, even tho A should have a higher priority. If the os uses priority queues rather than normal fifo queues for the internal queue inside a mutex, then is problem wouldn't occur. (Actually, you need to have more than 2 threads in your system for a priority queue to be helpful here, because of a race condition, but never mind that detail.) However, I think it's quite unlikely that typical desktop or server OSes use priority queues here; an RTOS might use them (I know vxworks has it as an option, or used to anyway) but priority queues require more cpu and memory and are at least tricky (maybe impossible) to implement right in a system with a fair scheduler. (Fair schedulers are actually pretty complicated compared to realtime schedulers.)

So far, this is all just a theory. I have no proof either for the overall theory or my contention that the queue used inside a mutex is (usually, on most systems) a fifo queue. 

If I'm right, then this might be fixable by making timeslices variable length, instead of always 10 ms. Lower priority threads would get shorter timeslices. 
----------------------------------------
http://redmine.ruby-lang.org/issues/show/1169

----------------------------------------
http://redmine.ruby-lang.org

In This Thread