[#50466] [ruby-trunk - Bug #7492][Open] Segmentation fault at DL::TestDL#test_call_double on x64 Windows 8 — "phasis68 (Heesob Park)" <phasis@...>
23 messages
2012/12/02
[#59083] [ruby-trunk - Bug #7492] Segmentation fault at DL::TestDL#test_call_double on x64 Windows 8
— "phasis68 (Heesob Park)" <phasis@...>
2013/12/13
[#50483] [IMPORTANT] 2.0.0 release plan — Yusuke Endoh <mame@...>
ALL COMMITTERS SHOULD READ THIS MAIL! コミッタはこのメール読んで!
5 messages
2012/12/02
[#50561] [ruby-trunk - Bug #7513][Open] TracePoint#enable/disable should not cause error — "ko1 (Koichi Sasada)" <redmine@...>
7 messages
2012/12/05
[#50575] [ruby-trunk - Feature #7517][Open] Fixnum::MIN,MAX — "matz (Yukihiro Matsumoto)" <matz@...>
20 messages
2012/12/05
[#50593] [ruby-trunk - Feature #7517] Fixnum::MIN,MAX
— "shyouhei (Shyouhei Urabe)" <shyouhei@...>
2012/12/05
[#50594] Re: [ruby-trunk - Feature #7517] Fixnum::MIN,MAX
— Charles Oliver Nutter <headius@...>
2012/12/05
On Wed, Dec 5, 2012 at 12:24 PM, shyouhei (Shyouhei Urabe)
[#50636] [ruby-trunk - Bug #7528][Open] CSV.== fails to check object type — "SteveW (Stephen Wattam)" <stephenwattam@...>
6 messages
2012/12/06
[#50660] [ruby-trunk - Feature #4085] Refinements and nested methods — "trans (Thomas Sawyer)" <transfire@...>
3 messages
2012/12/07
[#50699] Commit access for Yehuda Katz — Aaron Patterson <tenderlove@...>
Hi,
4 messages
2012/12/08
[#50923] Re: Commit access for Yehuda Katz
— Charles Oliver Nutter <headius@...>
2012/12/16
I will +1 this, unsure if it has happened already (it's "catch up on
[#50733] [ruby-trunk - Bug #7539][Open] Misleading error message "can't convert nil into string" — "connec (Chris Connelly)" <chris@...>
8 messages
2012/12/10
[#50755] Becoming a committer — Charlie Somerville <charlie@...>
Hi ruby-core,
21 messages
2012/12/11
[#50759] Re: Becoming a committer
— Yukihiro Matsumoto <matz@...>
2012/12/11
Hi,
[#50784] Re: Becoming a committer
— Charles Oliver Nutter <headius@...>
2012/12/11
It's really this easy? If so, I'll send over my public key today :)
[#50795] Re: Becoming a committer
— Yukihiro Matsumoto <matz@...>
2012/12/11
Hi,
[#50797] Re: Becoming a committer
— Charles Oliver Nutter <headius@...>
2012/12/11
I guess there's a few things I'd be interested in:
[#50809] Re: Becoming a committer
— SASADA Koichi <ko1@...>
2012/12/12
(2012/12/12 8:55), Charles Oliver Nutter wrote:
[#50815] Re: Becoming a committer
— Charles Oliver Nutter <headius@...>
2012/12/12
On Wed, Dec 12, 2012 at 12:04 AM, SASADA Koichi <ko1@atdot.net> wrote:
[#50816] Re: Becoming a committer
— "NARUSE, Yui" <naruse@...>
2012/12/12
2012/12/12 Charles Oliver Nutter <headius@headius.com>:
[#50817] Re: Becoming a committer
— Charles Oliver Nutter <headius@...>
2012/12/12
On Wed, Dec 12, 2012 at 2:59 AM, NARUSE, Yui <naruse@airemix.jp> wrote:
[#50765] [ruby-trunk - Bug #7544][Open] Accented characters in IRB — cfabianski (Cédric FABIANSKI) <cfabianski@...>
6 messages
2012/12/11
[#50793] [ruby-trunk - Bug #7547][Open] Dir.mktmpdir('~something') tries to expand a profile directory — "jstanley0 (Jeremy Stanley)" <jeremy@...>
4 messages
2012/12/11
[#50810] [ruby-trunk - Feature #7549][Open] A Ruby Design Process — "brixen (Brian Ford)" <brixen@...>
34 messages
2012/12/12
[#50829] [ruby-trunk - Feature #7549] A Ruby Design Process
— "subwindow (Erik Peterson)" <erik@...>
2012/12/12
[#50837] [ruby-trunk - Feature #7549] A Ruby Design Process
— "subwindow (Erik Peterson)" <erik@...>
2012/12/12
[#50867] [ruby-trunk - Bug #7556][Assigned] test error on refinement — "usa (Usaku NAKAMURA)" <usa@...>
14 messages
2012/12/13
[#50900] [ruby-trunk - Bug #7564][Open] r38175 introduces incompatibility — "tenderlovemaking (Aaron Patterson)" <aaron@...>
14 messages
2012/12/14
[#50913] [ruby-trunk - Bug #7568][Open] Yaml fails to encode zero date string. — "anshul (Anshul Khandelwal)" <anshul@...>
5 messages
2012/12/15
[#50920] [ruby-trunk - Bug #7568][Assigned] Yaml fails to encode zero date string.
— "charliesome (Charlie Somerville)" <charlie@...>
2012/12/16
[#50988] Re: [ruby-trunk - Bug #7568][Assigned] Yaml fails to encode zero date string.
— Aaron Patterson <tenderlove@...>
2012/12/19
On Sun, Dec 16, 2012 at 12:53:14PM +0900, charliesome (Charlie Somerville) wrote:
[#51015] 1.9.3 patch level release — Zachary Scott <zachary@...>
I know unak-san was asking about a 1.9.3 patch level release, so I
8 messages
2012/12/20
[#51099] [ruby-trunk - Feature #7612][Open] Enumerators take a proc — "pedz (Perry Smith)" <pedz@...>
4 messages
2012/12/23
[ruby-core:50542] Re: [ruby-trunk - Feature #6762][Open] Control interrupt timing
From:
Brent Roman <brent@...>
Date:
2012-12-03 23:18:19 UTC
List:
ruby-core #50542
I was suggesting "interruptible" as a better alternative for "async_interrupt_timing" or "control_interrupt". Can either be called without a block? If so, does it change the way subsequent interrupts are delivered? I'd like to avoid the use of "async" because it is an abbreviation for asynchronous. Ruby core method names tend of avoid abbreviations. That helps make the language more readable. In light of all the ways "async_interrupt_timing" method can be used, perhaps (even better :-) alternative names would be: accept_interrupt(X => :immediately) accept_interrupt(Y => :on_blocking) accept_interrupt(Z => :never) Or: handle_interrupt(X => :immediately) handle_interrupt(Y => :on_blocking) handle_interrupt(Z => :never) Handle interrupt X immediately. Handle interrupt Y on_blocking. Handle interrupt Z never. You could also write: asynchronous_event(X => :immediate) asynchronous_event(Y => :on_blocking) asynchronous_event(Z => :defer) Or, (but this is getting a bit too long): handle_asynchronous_event(X => :immediately) handle_asynchronous_event(Y => :on_blocking) handle_asynchronous_event(Z => :never) My vote is for handle_interrupt or asynchronous_event, but all these read as idiomatically correct English jargon. I adjusted the values in the hashes slightly when using a verb phase for the method name to make the resulting syntax more consistent with English grammar. The Thread#pending_interrupt? method name you propose is also perfectly good English. Either name is much more descriptive than Thread#async_interrupt? But, enough syntax. Let's move on to semantics: It is vital that further interrupts for a thread be deferred immediately after any asynchronous exception is raised in it. There is no other way to guarantee that ensure clauses run to completion. This deferral must happen even when the delivery policy is X=>:immediate ! Charles pointed this out earlier. I just assumed this would be the case. Can you please confirm? My five year old proposal incorporated to two similar interrupt deferral policies to deal with the above issue. One was analogous to your :immediate, the other was called :always. The :always policy operated exactly as Ruby does today. No interrupt queues or deferral. It is intended to provide compatibility with existing Ruby code, however conceptually flawed. This new proposal adds the ability to assign different exception delivery policies to each subclass of Exception. This seems good on the surface, but won't it complicate the queue management and make it possible for exceptions to be delivered out of order? Have you thought about this? Have you considered timestamping asynchronous exceptions so the application can tell how long they had been deferred, and, much more importantly, sort them to determine the actual order in which they occurred? I would suggest that, if you don't want to timestamp exceptions, you should drop the ability to apply different delivery policies to different object classes. Another, less important issue, is having the ability to query the number of interrupts in the deferral queue. Soft real-time systems may change their behavior depending on the perceived backlog. But, more importantly, seeing a large number of deferred interrupts for a thread is a great debugging aid. Under high loads, a boolean test would not provide the needed information, as there will usually be one or two interrupts pending. - brent -- Posted via http://www.ruby-forum.com/.