[#316551] "ensure" hiding actual error — Nit Khair <sentinel.2001@...>

In my main program I have a "begin ensure end".

19 messages 2008/10/01
[#316566] Re: "ensure" hiding actual error — "Robert Klemme" <shortcutter@...> 2008/10/01

2008/10/1 Nit Khair <sentinel.2001@gmx.com>:

[#316570] Re: "ensure" hiding actual error — Nit Khair <sentinel.2001@...> 2008/10/01

Robert Klemme wrote:

[#316579] Re: "ensure" hiding actual error — "Robert Klemme" <shortcutter@...> 2008/10/01

2008/10/1 Nit Khair <sentinel.2001@gmx.com>:

[#316583] Re: "ensure" hiding actual error — Nit Khair <sentinel.2001@...> 2008/10/01

Robert Klemme wrote:

[#316585] Re: "ensure" hiding actual error — "Thomas B." <tpreal@...> 2008/10/01

Nit Khair wrote:

[#316589] Re: "ensure" hiding actual error — "Robert Klemme" <shortcutter@...> 2008/10/01

2008/10/1 Thomas B. <tpreal@gmail.com>:

[#316617] Ordered hash hack for < ruby 1.9? — Ben Johnson <bjohnson@...>

I am having an issue testing my code because hashes don't have a

22 messages 2008/10/01
[#316620] Re: Ordered hash hack for < ruby 1.9? — "Patrick Doyle" <wpdster@...> 2008/10/01

Why not iterate over myhash.keys.sort instead of just myhash.keys?

[#316704] Problem extending (adding methods) to class — Nit Khair <sentinel.2001@...>

I am trying to extend a class developed by someone else (its from the

24 messages 2008/10/02
[#316707] Re: Problem extending (adding methods) to class — Nit Khair <sentinel.2001@...> 2008/10/02

Nit Khair wrote:

[#316723] Is Assignment in a Conditional an Idiom? — worthee@...

Hi

19 messages 2008/10/02

[#316839] class << self — "Patrick Doyle" <wpdster@...>

Sorry if this is a FAQ, but I was just looking at some Ruby code and

14 messages 2008/10/03

[#316847] Making/Compiling Gems on Windows with MinGW — Cayce Balara <house@...>

Whenever I try to install a gem that doesn't have a precompiled binary

11 messages 2008/10/03

[#316907] stream closed (IOError) — "Eric Will" <rakaur@...>

This code:

17 messages 2008/10/05
[#316910] Re: stream closed (IOError) — Yukihiro Matsumoto <matz@...> 2008/10/05

Hi,

[#316920] Re: stream closed (IOError) — "Eric Will" <rakaur@...> 2008/10/05

Line 231 is the @socket.close line. Nothing gets done to the socket

[#316925] Re: stream closed (IOError) — Yukihiro Matsumoto <matz@...> 2008/10/05

Hi,

[#316926] Re: stream closed (IOError) — "Eric Will" <rakaur@...> 2008/10/05

On Sun, Oct 5, 2008 at 11:46 AM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#316927] Re: stream closed (IOError) — Iki Baz Castillo <ibc@...> 2008/10/05

El Domingo, 5 de Octubre de 2008, Eric Will escribi=F3:

[#316968] Ruby lacks atfork : The evil that lives in fork... — John Carter <john.carter@...>

Consider this simple usage of Thread and Process....

12 messages 2008/10/06

[#316978] Concurent (using threads) slower than sequential -doubt — Carlos Ortega <caof2005@...>

Hi Folks.

10 messages 2008/10/06

[#316988] Problem with comparing huge amount of strings — Jan Fischer <janfischer@...>

Hello together,

11 messages 2008/10/06

[#317122] Demand that Obama release his college records! Where is the media? — Micky <guuwwe@...>

Why is it important to see Obama's college records? Because the media

11 messages 2008/10/07

[#317126] Ruby with Oracle forward slash error — Sam Sang <younoeme@...>

Hi,

12 messages 2008/10/07

[#317127] Looking for more Ruby-like way to create an array — Steve Nicholson <ssteve@...>

I'm creating an array that is the result of the members of another array

11 messages 2008/10/07

[#317326] Thread: super should be first line or last line? — "christoforever@..." <christoforever@...>

While playing around with ruby threads I noticed that if you dont call

11 messages 2008/10/10

[#317337] Modular Arithmetic (#179) — Matthew Moss <matt@...>

-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D=

15 messages 2008/10/10

[#317395] Automatic ClassLoader (to eliminate 'require') — Alexey Petrushin <axyd80@...>

Hello!

17 messages 2008/10/11
[#317397] Re: Automatic ClassLoader (to eliminate 'require') — Erik Veenstra <erikveen@...> 2008/10/11

module AutoRequire

[#317402] Re: Automatic ClassLoader (to eliminate 'require') — Alexey Petrushin <axyd80@...> 2008/10/11

Thanks! It works! :)

[#317403] Re: Automatic ClassLoader (to eliminate 'require') — "Thomas B." <tpreal@...> 2008/10/11

Alexey Petrushin wrote:

[#317422] Sample for Metaprogramming — relzne@...

Hi.

13 messages 2008/10/11

[#317452] Updating Ruby 1.8.6 to 1.8.6-p287 in Debian 4 — The Neurochild <neurochild@...>

Hi

21 messages 2008/10/12

[#317502] Sorting help — Binh Ly <binh@...>

Hello All,

19 messages 2008/10/12

[#317601] Using DBI and MySQL gems — Owein Herrmann <oherrmann@...>

Quick question:

14 messages 2008/10/13

[#317758] Big endian convention in Ruby — Zangief Ief <z4n9ief@...>

Hello,

18 messages 2008/10/16
[#317767] Re: Big endian convention in Ruby — Robert Klemme <shortcutter@...> 2008/10/16

On 16.10.2008 10:26, Zangief Ief wrote:

[#317772] Re: Big endian convention in Ruby — Zangief Ief <z4n9ief@...> 2008/10/16

Thanks you for you answer.

[#317800] Re: Big endian convention in Ruby — Brian Candler <b.candler@...> 2008/10/16

Zangief Ief wrote:

[#317820] Re: Big endian convention in Ruby — Robert Klemme <shortcutter@...> 2008/10/16

On 16.10.2008 15:25, Brian Candler wrote:

[#317936] Re: Big endian convention in Ruby — Zangief Ief <z4n9ief@...> 2008/10/17

Thank you all for your help.

[#317759] How to go from a ruby script to a working website? — Ralph Wood <esmero@...>

As you've probably guessed by the title, total newbie here.

12 messages 2008/10/16

[#317769] A Ruby block question — David Trasbo <davidtrasbo@...>

I am in need of making a method that accepts a block. It basicly needs

23 messages 2008/10/16
[#317770] Re: A Ruby block question — Stefano Crocco <stefano.crocco@...> 2008/10/16

Alle Thursday 16 October 2008, David Trasbo ha scritto:

[#317773] Re: A Ruby block question — David Trasbo <davidtrasbo@...> 2008/10/16

Stefano Crocco wrote:

[#317779] Re: A Ruby block question — Stefano Crocco <stefano.crocco@...> 2008/10/16

Alle Thursday 16 October 2008, David Trasbo ha scritto:

[#317780] Re: A Ruby block question — David Trasbo <davidtrasbo@...> 2008/10/16

Stefano Crocco wrote:

[#317776] I found way to protect Source Code! :) — Alexey Petrushin <axyd80@...>

Hello!

34 messages 2008/10/16
[#317859] Re: I found way to protect Source Code! :) — Ade Inovica <adrian.teasdale@...> 2008/10/16

Interesting solution. May I also suggest that you try

[#317869] Re: I found way to protect Source Code! :) — Mike Gold <mike.gold.4433@...> 2008/10/16

Ade Inovica wrote:

[#317886] Re: I found way to protect Source Code! :) — Sasha Bee <rubyman77@...> 2008/10/17

Mike Gold wrote:

[#317956] Re: I found way to protect Source Code! :) — "ara.t.howard" <ara.t.howard@...> 2008/10/17

[#317878] instance counter — Pierre Lebrun <anthonylebrun@...>

Please forgive the trite nature of this question, I'm new to ruby and OO

21 messages 2008/10/17
[#317880] Re: instance counter — Tommy Nordgren <tommy.nordgren@...> 2008/10/17

[#317883] Re: instance counter — Mike Gold <mike.gold.4433@...> 2008/10/17

Tommy Nordgren wrote:

[#317903] Re: instance counter — Robert Klemme <shortcutter@...> 2008/10/17

On 17.10.2008 07:19, Mike Gold wrote:

[#317938] Error Exception if script doesn't run — jackster the jackle <johnsheahan@...>

I need to know if my script fails to run for any reason and capture the

20 messages 2008/10/17
[#317941] Re: Error Exception if script doesn't run — Brian Candler <b.candler@...> 2008/10/17

jackster the jackle wrote:

[#317967] Re: Error Exception if script doesn't run — jackster the jackle <johnsheahan@...> 2008/10/17

I notice that any shell commands that I have in the script that fail do

[#317972] Re: Error Exception if script doesn't run — Joel VanderWerf <vjoel@...> 2008/10/17

jackster the jackle wrote:

[#317974] Re: Error Exception if script doesn't run — jackster the jackle <johnsheahan@...> 2008/10/17

It seems to work but not for this command, perhaps since scp gets

[#317979] Re: Error Exception if script doesn't run — Tim Hunter <TimHunter@...> 2008/10/18

jackster the jackle wrote:

[#317992] Re: Error Exception if script doesn't run — jackster the jackle <johnsheahan@...> 2008/10/18

Tim Hunter wrote:

[#317966] Counting — Tom Clarke <thomas.clarke08@...>

How would i go about making Ruby count to say 1000 usin only multiples

18 messages 2008/10/17

[#318286] Trollop 1.10 released — William Morgan <wmorgan-ruby-talk@...>

Trollop version 1.10 has been released!

12 messages 2008/10/22

[#318309] Is there a method_eval or similar thing ? — Nit Khair <sentinel.2001@...>

I have a method called askyesno which takes a string and returns whether

13 messages 2008/10/22

[#318323] What exactly does "rubyish" or "ruby way" mean? — Nit Khair <sentinel.2001@...>

Over the last month I have been reading a lot of blogs, searching, going

12 messages 2008/10/22

[#318509] How to tell if two paths point to the same file? — Kenneth McDonald <kenneth.m.mcdonald@...>

I've tried using File.expand_path to normalize path names, but this

12 messages 2008/10/24

[#318523] RubyMacros 0.1.0 Released — "Caleb Clausen" <vikkous@...>

RubyMacros is a lisp-like macro pre-processor for Ruby. More than just a

15 messages 2008/10/24

[#318552] Join all text files in a folder, with a single line of Ruby code — luisbebop <luisbebop@...>

I did a single line of code in Ruby, which joins all text files in a

26 messages 2008/10/25
[#318556] Re: Join all text files in a folder, with a single line of Ruby code — "William James" <w_a_x_man@...> 2008/10/25

luisbebop wrote:

[#318574] Re: Join all text files in a folder, with a single line of Ruby code — Joel VanderWerf <vjoel@...> 2008/10/25

William James wrote:

[#318607] Re: Join all text files in a folder, with a single line of Ruby code — Nobuyoshi Nakada <nobu@...> 2008/10/26

Hi,

[#318622] Re: Join all text files in a folder, with a single line of Ruby code — Joel VanderWerf <vjoel@...> 2008/10/26

Nobuyoshi Nakada wrote:

[#318640] Re: Join all text files in a folder, with a single line of Ruby code — luisbebop <luisbebop@...> 2008/10/27

> ruby -pe'1' *

[#318641] Re: Join all text files in a folder, with a single line of Ruby code — Joel VanderWerf <vjoel@...> 2008/10/27

luisbebop wrote:

[#318601] Hash.merge_add! extension - how does this code look? — "Greg Hauptmann" <greg.hauptmann.ruby@...>

Hi,

18 messages 2008/10/26
[#318632] Re: Hash.merge_add! extension - how does this code look? — Stefan Rusterholz <apeiros@...> 2008/10/26

Greg Hauptmann wrote:

[#318644] Re: Hash.merge_add! extension - how does this code look? — "Greg Hauptmann" <greg.hauptmann.ruby@...> 2008/10/27

thanks for highlighting this! Is the quickest way to normalise to Array via

[#318655] Re: Hash.merge_add! extension - how does this code look? — Stefan Rusterholz <apeiros@...> 2008/10/27

Greg Hauptmann wrote:

[#318656] Re: Hash.merge_add! extension - how does this code look? — "Greg Hauptmann" <greg.hauptmann.ruby@...> 2008/10/27

I just noticed the code suggested might have a problem when the

[#318721] automatic code conversion from Ruby to C ? — "Axel Etzold" <AEtzold@...>

Dear all,

16 messages 2008/10/27

[#318888] project manager panel in SciTE — Li Chen <chen_li3@...>

Hi all,

14 messages 2008/10/29

[#318896] RubyGems 1.3.1 — Eric Hodel <drbrain@...7.net>

= Announce: RubyGems Release 1.3.1

13 messages 2008/10/29

[#318970] Roguelike project? — Tim Mcd <tmcdowell@...>

Anyone interested in a Roguelike game written in Ruby/Ncurses project?

41 messages 2008/10/30
[#318976] Re: Roguelike project? — Matthew Moss <matt@...> 2008/10/30

> Anyone interested in a Roguelike game written in Ruby/Ncurses project?

[#319050] Re: Roguelike project? — "Michael Fellinger" <m.fellinger@...> 2008/10/31

On Fri, Oct 31, 2008 at 3:42 AM, Matthew Moss <matt@moss.name> wrote:

[#319052] Re: Roguelike project? — Nit Khair <sentinel.2001@...> 2008/10/31

Michael Fellinger wrote:

[#319056] Re: Roguelike project? — "Michael Fellinger" <m.fellinger@...> 2008/10/31

On Sat, Nov 1, 2008 at 1:46 AM, Nit Khair <sentinel.2001@gmx.com> wrote:

[#319287] Re: Roguelike project? — Nit Khair <sentinel.2001@...> 2008/11/03

Michael Fellinger wrote:

[#319393] Re: Roguelike project? — Nit Khair <sentinel.2001@...> 2008/11/04

Nit Khair wrote:

[#319422] Re: Roguelike project? — Nit Khair <sentinel.2001@...> 2008/11/04

Nit Khair wrote:

[#319021] XML builder performance — Xin Zheng <crazygecko@...>

Hi all,

13 messages 2008/10/31

[#319055] How to access to local variables in enclosing scopes? — Yuh-Ruey Chen <maian330@...>

I'm familiar with other popular scripting languages (JS and Python),

34 messages 2008/10/31

[#319094] FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Charles Oliver Nutter <charles.nutter@...>

The JRuby team is proud to announce the release of FFI for Ruby 1.8.6/7

62 messages 2008/10/31
[#319099] Re: [ANN] FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Thomas Hurst <tom.hurst@...> 2008/11/01

* Charles Oliver Nutter (charles.nutter@sun.com) wrote:

[#319101] Re: [ANN] FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Charles Oliver Nutter <charles.nutter@...> 2008/11/01

Thomas Hurst wrote:

[#319113] Re: [ANN] FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Charles Oliver Nutter <charles.nutter@...> 2008/11/01

Charles Oliver Nutter wrote:

[#319238] Re: [ANN] FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Sylvain Joyeux <sylvain.joyeux@...> 2008/11/03

On Sat, Nov 01, 2008 at 08:16:39AM +0900, Charles Oliver Nutter wrote:

[#319240] Re: [ANN] FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Charles Oliver Nutter <charles.nutter@...> 2008/11/03

Sylvain Joyeux wrote:

[#319390] Re: [ANN] FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Ken Bloom <kbloom@...> 2008/11/04

On Fri, 31 Oct 2008 18:16:39 -0500, Charles Oliver Nutter wrote:

[#319391] Re: [ANN] FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — "Sean O'Halpin" <sean.ohalpin@...> 2008/11/04

On Tue, Nov 4, 2008 at 2:38 PM, Ken Bloom <kbloom@gmail.com> wrote:

[#319395] Re: FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Nit Khair <sentinel.2001@...> 2008/11/04

Sean O'halpin wrote:

[#319428] Re: FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Charles Oliver Nutter <charles.nutter@...> 2008/11/04

Nit Khair wrote:

[#319467] Re: FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — "Sean O'Halpin" <sean.ohalpin@...> 2008/11/05

On Tue, Nov 4, 2008 at 7:02 PM, Charles Oliver Nutter

[#319468] Re: FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Charles Oliver Nutter <charles.nutter@...> 2008/11/05

Sean O'Halpin wrote:

[#319535] Re: FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — "Sean O'Halpin" <sean.ohalpin@...> 2008/11/05

On Wed, Nov 5, 2008 at 4:34 AM, Charles Oliver Nutter

[#319538] Re: FFI 0.1.1 (Foreign Function Interface) for Ruby 1.8.6/7 and 1.9 — Nit Khair <sentinel.2001@...> 2008/11/05

Sean O'halpin wrote:

Re: Ruby lacks atfork : The evil that lives in fork...

From: John Carter <john.carter@...>
Date: 2008-10-07 00:41:55 UTC
List: ruby-talk #317044
On Tue, 7 Oct 2008, Yukihiro Matsumoto wrote:

> When you fork off the process, the entire resources are (virtually)
> copied, so that there's no way to ensure (copied) mutex to share
> locking status across processes.  The basic rule is: don't mix threads
> (and thread related resources like mutex) with processes.

The problem with "don't mix threads with processes" is unless you
inspect the source code of each version of each library in turn...  it
is very hard to prove that nothing in your system is using a thread
and a process together.

Ah, but that's the point of pthread_atfork... it gives you several
possible strategies to allow you to mix threads with processes...

1) Give the resource to the child.

    Use the atfork handler to lock the mutex in the prepare handler
    (blocking if need be until you can obtain it) perform the fork,
    release the lock in the child handler. Thereafter the resource will be
    unobtainable in the parent until the child exits, and the child may
    continue to use the resource as need be.

2) Give the resource to the parent.

    Use atfork to lock the resource in the prepare handler, ensure it is
    locked in the child handler, unlock in the parent
    handler. Thereafter the child process will find it is always
    locked, and the parent process will be able to access it.

3) Lock both out for the duration.

4) Mutate the mutex into a valid interprocess lock like flock or
    fcntl.


Sun solaris has a "fork_all" variant that creates copies of all
actives threads as well... but I'm not sure that 'fork_all" really
solves the problem instead of multiplying it.

What the open group has to say on the subject is informative...

http://www.opengroup.org/onlinepubs/009695399/functions/pthread_atfork.html

     There are at least two serious problems with the semantics of
     fork() in a multi-threaded program. One problem has to do with
     state (for example, memory) covered by mutexes. Consider the case
     where one thread has a mutex locked and the state covered by that
     mutex is inconsistent while another thread calls fork(). In the
     child, the mutex is in the locked state (locked by a nonexistent
     thread and thus can never be unlocked). Having the child simply
     reinitialize the mutex is unsatisfactory since this approach does
     not resolve the question about how to correct or otherwise deal
     with the inconsistent state in the child.

     It is suggested that programs that use fork() call an exec
     function very soon afterwards in the child process, thus resetting
     all states. In the meantime, only a short list of
     async-signal-safe library routines are promised to be available.

     Unfortunately, this solution does not address the needs of
     multi-threaded libraries. Application programs may not be aware
     that a multi-threaded library is in use, and they feel free to
     call any number of library routines between the fork() and exec
     calls, just as they always have. Indeed, they may be extant
     single-threaded programs and cannot, therefore, be expected to
     obey new restrictions imposed by the threads library.

     On the other hand, the multi-threaded library needs a way to
     protect its internal state during fork() in case it is re-entered
     later in the child process. The problem arises especially in
     multi-threaded I/O libraries, which are almost sure to be invoked
     between the fork() and exec calls to effect I/O redirection. The
     solution may require locking mutex variables during fork(), or it
     may entail simply resetting the state in the child after the
     fork() processing completes.

     The pthread_atfork() function provides multi-threaded libraries
     with a means to protect themselves from innocent application
     programs that call fork(), and it provides multi-threaded
     application programs with a standard mechanism for protecting
     themselves from fork() calls in a library routine or the
     application itself.

     The expected usage is that the prepare handler acquires all mutex
     locks and the other two fork handlers release them.

     For example, an application can supply a prepare routine that
     acquires the necessary mutexes the library maintains and supply
     child and parent routines that release those mutexes, thus
     ensuring that the child gets a consistent snapshot of the state of
     the library (and that no mutexes are left
     stranded). Alternatively, some libraries might be able to supply
     just a child routine that reinitializes the mutexes in the library
     and all associated states to some known value (for example, what
     it was when the image was originally executed).

     When fork() is called, only the calling thread is duplicated in
     the child process. Synchronization variables remain in the same
     state in the child as they were in the parent at the time fork()
     was called. Thus, for example, mutex locks may be held by threads
     that no longer exist in the child process, and any associated
     states may be inconsistent. The parent process may avoid this by
     explicit code that acquires and releases locks critical to the
     child via pthread_atfork(). In addition, any critical threads need
     to be recreated and reinitialized to the proper state in the child
     (also via pthread_atfork()).

     A higher-level package may acquire locks on its own data
     structures before invoking lower-level packages. Under this
     scenario, the order specified for fork handler calls allows a
     simple rule of initialization for avoiding package deadlock: a
     package initializes all packages on which it depends before it
     calls the pthread_atfork() function for itself.

Yes, I'm aware the author of that document was describe POSIX pthreads
not ruby threads. But clearly the same problems exist in both.


John Carter                             Phone : (64)(3) 358 6639
Tait Electronics                        Fax   : (64)(3) 359 4632
PO Box 1645 Christchurch                Email : john.carter@tait.co.nz
New Zealand


In This Thread