[#347506] how do you do this — George George <george.githinji@...>

Given an array of strings e.g.

20 messages 2009/10/01

[#347686] what do you enjoy in a ruby quiz? — Martin DeMello <martindemello@...>

I've noticed that the ruby quiz has been getting few responses of

22 messages 2009/10/04

[#347700] Count the number of times an element occurs in an array — Jim Burgess <jack.zelig@...>

Hi,

13 messages 2009/10/05

[#347715] regex simplifier? — Roger Pack <rogerpack2005@...>

Question.

17 messages 2009/10/05

[#347765] Ruby for the wrong reason — flebber <flebber.crue@...>

Hi

39 messages 2009/10/06
[#347774] Re: Ruby for the wrong reason — 7stud -- <bbxx789_05ss@...> 2009/10/06

flebber wrote:

[#347800] Re: Ruby for the wrong reason — James Edward Gray II <james@...> 2009/10/06

On Oct 6, 2009, at 1:16 AM, 7stud -- wrote:

[#347821] Re: Ruby for the wrong reason — 7stud -- <bbxx789_05ss@...> 2009/10/06

James Edward Gray II wrote:

[#347830] How to not display output of a system call. — Jerry Mr <jerry.piazza@...>

Lets say I have a Windows command line program that runs the following:

11 messages 2009/10/06

[#347871] Google Wave- I need contacts! — Tim Mcd <tmcdowell@...>

After 6 days, i finally got my gWave invite! ('and there was much

21 messages 2009/10/07
[#347889] Re: Google Wave- I need contacts! — Andrew Timberlake <andrew@...> 2009/10/07

Well, you could share the love (I'd love an invite) and build contacts

[#347899] Re: Google Wave- I need contacts! — Tim Mcd <tmcdowell@...> 2009/10/07

Andrew Timberlake wrote:

[#347904] Re: Google Wave- I need contacts! — Rajinder Yadav <devguy.ca@...> 2009/10/07

Tim, when they restrict the rules you could ping this group for an

[#347909] Re: Google Wave- I need contacts! — Tim Mcd <tmcdowell@...> 2009/10/07

Rajinder Yadav wrote:

[#349016] Re: Google Wave- I need contacts! — Jarod Reid <jarod@...> 2009/10/28

i'd like an invite if you have a spare

[#350049] Re: Google Wave- I need contacts! — Rajinder Yadav <devguy.ca@...> 2009/11/10

Jarod Reid wrote:

[#350081] Re: Google Wave- I need contacts! — Michael Weller <gibbsnich@...> 2009/11/10

Uhh, didn't hear of google wave before.

[#348042] Windows Ruby Version Check — James Edward Gray II <james@...>

Can a Windows Ruby user please confirm that the "Ruby 1.9.1-p129

11 messages 2009/10/09

[#348100] Class Level inheritable attributes - are we there yet? — dreamcat four <dreamcat4@...>

Hi,

34 messages 2009/10/10
[#348103] Re: Class Level inheritable attributes - are we there yet? — "David A. Black" <dblack@...> 2009/10/10

Hi --

[#348104] Re: Class Level inheritable attributes - are we there yet? — dreamcat four <dreamcat4@...> 2009/10/10

The problem with class variables in Ruby, is that a class variable is

[#348136] Re: Class Level inheritable attributes - are we there yet? — Robert Klemme <shortcutter@...> 2009/10/11

On 10/10/2009 08:59 PM, dreamcat four wrote:

[#348200] Re: Class Level inheritable attributes - are we there yet? — "ara.t.howard" <ara.t.howard@...> 2009/10/12

[#348231] Re: Class Level inheritable attributes - are we there yet? — "David A. Black" <dblack@...> 2009/10/12

On Tue, 13 Oct 2009, ara.t.howard wrote:

[#348248] Re: Class Level inheritable attributes - are we there yet? — "ara.t.howard" <ara.t.howard@...> 2009/10/13

On Mon, Oct 12, 2009 at 17:48, David A. Black <dblack@rubypal.com> wrote:

[#348258] Re: Class Level inheritable attributes - are we there yet? — Robert Klemme <shortcutter@...> 2009/10/13

2009/10/13 ara.t.howard <ara.t.howard@gmail.com>:

[#348169] Does ruby.h overrides C "enum"? — Iñaki Baz Castillo <ibc@...>

Hi, writting a Ruby C extension (for 1.8 or 1.9) I get an error when using=

19 messages 2009/10/12

[#348281] how to solve a special JRuby and Java syntax conflict? — "Axel Etzold" <AEtzold@...>

Dear all,

15 messages 2009/10/13
[#348285] Re: how to solve a special JRuby and Java syntax conflict? — Paul Smith <paul@...> 2009/10/13

On Tue, Oct 13, 2009 at 8:52 PM, Axel Etzold <AEtzold@gmx.de> wrote:

[#348286] Re: how to solve a special JRuby and Java syntax conflict? — Paul Smith <paul@...> 2009/10/13

On Tue, Oct 13, 2009 at 9:52 PM, Paul Smith <paul@pollyandpaul.co.uk> wrote:

[#348287] Re: how to solve a special JRuby and Java syntax conflict? — "Axel Etzold" <AEtzold@...> 2009/10/13

Dear Paul,

[#348290] Re: how to solve a special JRuby and Java syntax conflict? — "Walton Hoops" <walton@...> 2009/10/13

Axel Etzold wrote:

[#348325] Re: how to solve a special JRuby and Java syntax conflict? — "Axel Etzold" <AEtzold@...> 2009/10/14

[#348317] deep cloning, how? — Rajinder Yadav <devguy.ca@...>

I am trying to figure out how to perform a deep clone

29 messages 2009/10/14
[#348330] Re: deep cloning, how? — Robert Klemme <shortcutter@...> 2009/10/14

2009/10/14 Rajinder Yadav <devguy.ca@gmail.com>:

[#348366] Re: deep cloning, how? — Caleb Clausen <vikkous@...> 2009/10/14

On 10/14/09, Robert Klemme <shortcutter@googlemail.com> wrote:

[#348379] Re: deep cloning, how? — Robert Klemme <shortcutter@...> 2009/10/14

On 14.10.2009 19:03, Caleb Clausen wrote:

[#348428] Re: deep cloning, how? — Caleb Clausen <vikkous@...> 2009/10/15

On 10/14/09, Robert Klemme <shortcutter@googlemail.com> wrote:

[#348449] Re: deep cloning, how? — Brian Candler <b.candler@...> 2009/10/16

Caleb Clausen wrote:0

[#348339] Hey you! Stop using relative requires! — Intransition <transfire@...>

I recently came across two different programs that had this line in a

22 messages 2009/10/14
[#348365] Re: Hey you! Stop using relative requires! — Tony Arcieri <tony@...> 2009/10/14

On Wed, Oct 14, 2009 at 6:01 AM, Intransition <transfire@gmail.com> wrote:

[#348401] matching against a zillion patterns — George George <george.githinji@...>

i have some script in which i would like to match a string against

18 messages 2009/10/15

[#348486] Dynamic nested each in ruby 1.8.7? — Toi Toi <toi@...>

How can one have a function that uses a dynamic amount of each

15 messages 2009/10/18

[#348570] memory leak — Rob Doug <broken.m@...>

Hi all,

27 messages 2009/10/20
[#348647] Re: memory leak — Robert Klemme <shortcutter@...> 2009/10/20

On 20.10.2009 03:10, Rob Doug wrote:

[#348655] Re: memory leak — Rob Doug <broken.m@...> 2009/10/20

[#348679] Re: memory leak — Robert Klemme <shortcutter@...> 2009/10/21

On 21.10.2009 00:47, Rob Doug wrote:

[#348718] Re: memory leak — Rob Doug <broken.m@...> 2009/10/22

> You could print out object statistics to get an idea about the source of

[#348727] Creating and raising custom exception in Ruby C extension — Iñaki Baz Castillo <ibc@...>

Hi, I'm trying to create a CustomError exception in a Ruby C extension and =

8 messages 2009/10/22

[#348738] convert/replace a value of nil with 0? — Mmcolli00 Mom <mmc_collins@...>

Do you know how I can convert or replace any value that gets back a

12 messages 2009/10/22

[#348825] mail — Mikel Lindsaar <raasdnil@...>

Some of you might know about a little gem that Minero Aoki wrote called tmail.

15 messages 2009/10/25

[#348877] Array#collect in a method call, not working for me — Michael Randall <randallsata@...>

I am sure I'm making a newbie mistake, as I've just started learning

9 messages 2009/10/26

[#349004] duby 0.0.1 Released — Charles Oliver Nutter <headius@...>

duby version 0.0.1 has been released!

18 messages 2009/10/27
[#349007] Re: [ANN] duby 0.0.1 Released — "Bill Kelly" <billk@...> 2009/10/27

[#349022] Closures / lambda question — Aldric Giacomoni <aldric@...>

This is something I don't understand, and did not understand when I

13 messages 2009/10/28

[#349024] Desktop GUI apps in Ruby — Marnen Laibow-Koser <marnen@...>

Hi folks!

35 messages 2009/10/28

[#349099] Ruby can't subtract ? — Aldric Giacomoni <aldric@...>

I found this blog entry:

25 messages 2009/10/28
[#349100] Re: Ruby can't subtract ? — "Matthew K. Williams" <matt@...> 2009/10/28

On Thu, 29 Oct 2009, Aldric Giacomoni wrote:

[#349183] Using multicore CPUs in parallel tasks — Marc Hoeppner <marc.hoeppner@...>

Hi,

19 messages 2009/10/29
[#349203] Re: Using multicore CPUs in parallel tasks — Glen Holcomb <damnbigman@...> 2009/10/29

On Thu, Oct 29, 2009 at 8:56 AM, Marc Hoeppner

[#349221] Re: Using multicore CPUs in parallel tasks — Tony Arcieri <tony@...> 2009/10/29

On Thu, Oct 29, 2009 at 11:48 AM, Glen Holcomb <damnbigman@gmail.com> wrote:

[#349253] Ruby doesn't implement x++ for Fixnum's because ??? — RichardOnRails <RichardDummyMailbox58407@...>

Hi,

159 messages 2009/10/30
[#349303] Re: Ruby doesn't implement x++ for Fixnum's because ??? — RichardOnRails <RichardDummyMailbox58407@...> 2009/10/30

On Oct 29, 9:18=A0pm, RichardOnRails

[#349307] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Robert Klemme <shortcutter@...> 2009/10/30

2009/10/30 RichardOnRails <RichardDummyMailbox58407@uscomputergurus.com>:

[#349337] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Rick DeNatale <rick.denatale@...> 2009/10/30

On Fri, Oct 30, 2009 at 11:05 AM, Robert Klemme

[#349600] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Tony Arcieri <tony@...> 2009/11/04

On Fri, Oct 30, 2009 at 12:03 PM, Rick DeNatale <rick.denatale@gmail.com>wrote:

[#349606] Re: Ruby doesn't implement x++ for Fixnum's because ??? — "Michael W. Ryder" <_mwryder55@...> 2009/11/04

Tony Arcieri wrote:

[#349607] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Tony Arcieri <tony@...> 2009/11/04

On Tue, Nov 3, 2009 at 10:30 PM, Michael W. Ryder <_mwryder55@gmail.com>wrote:

[#349611] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Charles Oliver Nutter <headius@...> 2009/11/04

Of course I had to jump in here.

[#349633] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Rick DeNatale <rick.denatale@...> 2009/11/04

On Wed, Nov 4, 2009 at 1:58 AM, Charles Oliver Nutter

[#349635] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Marnen Laibow-Koser <marnen@...> 2009/11/04

Rick Denatale wrote:

[#349621] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Gavin Sinclair <gsinclair@...> 2009/11/04

On Nov 4, 5:58=A0pm, Charles Oliver Nutter <head...@headius.com> wrote:

[#349654] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Tony Arcieri <tony@...> 2009/11/04

On Wed, Nov 4, 2009 at 3:55 AM, Gavin Sinclair <gsinclair@gmail.com> wrote:

[#349665] Re: Ruby doesn't implement x++ for Fixnum's because ??? — "Walton Hoops" <walton@...> 2009/11/04

> -----Original Message-----

[#349671] Re: Ruby doesn't implement x++ for Fixnum's because ??? — "Michael W. Ryder" <_mwryder55@...> 2009/11/04

Walton Hoops wrote:

[#349682] Re: Ruby doesn't implement x++ for Fixnum's because ??? — "Walton Hoops" <walton@...> 2009/11/04

> -----Original Message-----

[#349688] Re: Ruby doesn't implement x++ for Fixnum's because ??? — "Michael W. Ryder" <_mwryder55@...> 2009/11/04

Walton Hoops wrote:

[#349689] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Marnen Laibow-Koser <marnen@...> 2009/11/04

Michael W. Ryder wrote:

[#349693] Re: Ruby doesn't implement x++ for Fixnum's because ??? — "Walton Hoops" <walton@...> 2009/11/04

> -----Original Message-----

[#349814] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Seebs <usenet-nospam@...> 2009/11/06

On 2009-11-06, David A. Black <dblack@rubypal.com> wrote:

[#349879] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Tony Arcieri <tony@...> 2009/11/08

On Fri, Nov 6, 2009 at 4:30 PM, Seebs <usenet-nospam@seebs.net> wrote:

[#349880] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Rick DeNatale <rick.denatale@...> 2009/11/08

On Sun, Nov 8, 2009 at 11:48 AM, Tony Arcieri <tony@medioh.com> wrote:

[#349885] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Tony Arcieri <tony@...> 2009/11/08

On Sun, Nov 8, 2009 at 10:45 AM, Rick DeNatale <rick.denatale@gmail.com>wrote:

[#349886] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Marnen Laibow-Koser <marnen@...> 2009/11/08

Tony Arcieri wrote:

[#349887] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Tony Arcieri <tony@...> 2009/11/08

On Sun, Nov 8, 2009 at 11:22 AM, Marnen Laibow-Koser <marnen@marnen.org>wrote:

[#349889] Re: Ruby doesn't implement x++ for Fixnum's because ??? — "Walton Hoops" <walton@...> 2009/11/08

> -----Original Message-----

[#349892] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Tony Arcieri <tony@...> 2009/11/08

On Sun, Nov 8, 2009 at 11:49 AM, Walton Hoops <walton@vyper.hopto.org>wrote:

[#349898] Re: Ruby doesn't implement x++ for Fixnum's because ??? — "Walton Hoops" <walton@...> 2009/11/08

> From: bascule@gmail.com [mailto:bascule@gmail.com] On Behalf Of Tony

[#349900] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Tony Arcieri <tony@...> 2009/11/08

On Sun, Nov 8, 2009 at 1:15 PM, Walton Hoops <walton@vyper.hopto.org> wrote:

[#349980] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Seebs <usenet-nospam@...> 2009/11/09

On 2009-11-09, Marnen Laibow-Koser <marnen@marnen.org> wrote:

[#349988] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Rick DeNatale <rick.denatale@...> 2009/11/09

On Mon, Nov 9, 2009 at 8:40 AM, Seebs <usenet-nospam@seebs.net> wrote:

[#349989] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Marnen Laibow-Koser <marnen@...> 2009/11/09

Rick Denatale wrote:

[#349994] Re: Ruby doesn't implement x++ for Fixnum's because ??? — Aldric Giacomoni <aldric@...> 2009/11/09

Marnen Laibow-Koser wrote:

[#349264] How do you get the tail end of a string? — "Just Another Victim of the Ambient Morality" <ihatespam@...>

I'm actually hoping this is an embarrassing question but how do you get

55 messages 2009/10/30
[#349266] Re: How do you get the tail end of a string? — "Michael W. Ryder" <_mwryder55@...> 2009/10/30

Just Another Victim of the Ambient Morality wrote:

[#349267] Re: How do you get the tail end of a string? — "Michael W. Ryder" <_mwryder55@...> 2009/10/30

Michael W. Ryder wrote:

[#349286] Re: How do you get the tail end of a string? — Bertram Scharpf <lists@...> 2009/10/30

Hi,

[#349323] Merging hashes using both symbols and strings as keys — shenry <stuarthenry@...>

I'm trying to merge to hashes, one using symbols as keys (the defined

15 messages 2009/10/30
[#349528] Re: Merging hashes using both symbols and strings as keys — Josh Cheek <josh.cheek@...> 2009/11/03

On Fri, Oct 30, 2009 at 11:10 AM, shenry <stuarthenry@gmail.com> wrote:

[#349352] In-place parameter modification — Dave Anderson <anderson@...>

Native to ruby are several methods that change passed-in parameters

17 messages 2009/10/30

[#349406] Hamurabi (#223) — Daniel Moore <yahivin@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

23 messages 2009/10/31
[#349451] Re: [QUIZ] Hamurabi (#223) — James Edward Gray II <james@...> 2009/11/01

On Oct 31, 2009, at 6:23 PM, Daniel Moore wrote:

[#349498] Re: [QUIZ] Hamurabi (#223) — Martin DeMello <martindemello@...> 2009/11/02

On Mon, Nov 2, 2009 at 5:29 AM, James Edward Gray II

Re: ruby 1.8.6, threadpooling and blocking sockets - advice/help

From: Robert Klemme <shortcutter@...>
Date: 2009-10-20 20:00:05 UTC
List: ruby-talk #348641
On 20.10.2009 02:31, Daniel Bush wrote:
> Robert Klemme wrote:
>> On 10/19/2009 02:51 PM, Daniel Bush wrote:
>>>       puts "#{Thread.current} received #{data}... "
>>>     end
>>>     client.close
>>>
>>> on @socket which was set up like this:
>>>
>>>     @socket = Socket.new( AF_INET, SOCK_STREAM, 0 )
>>>     @sockaddr = Socket.pack_sockaddr_in( 2200, 'localhost')
>>>     @socket.bind( @sockaddr )
>>>     @socket.listen( 100 )
>> This won't work.  You can have only 1 acceptor thread per server socket.
>>   Typically you dispatch processing *after* the accept to a thread
>> (either newly created or taken from a pool).
>>
>> I have no idea what the interpreter is going to do if you have multiple
>> threads trying to accept from the same socket.  In the best case #accept
>> is synchronized and only one thread gets to enter it.  In worse
>> scenarios anything bad may happen.
> 
> Ok, I wasn't sure if it was appropriate having >1 thread per socket 
> instance.  It *appears* to work ok on ruby 1.9 up to about 100 socket 
> connections - not that that means anything when it comes to testing 
> stuff with threads.  Maybe if I do 100,000+ I might elicit some type of 
> error.
> 
> I was intending to process the result of accept in another pool but I 
> was toying with the idea of having 2-3 threads waiting on #accept 
> assuming no synchronisation issues.  I didn't know if it really mattered 
> or not.  It might make a difference if you have a large number of 
> connections coming in depending on what the acceptor is doing in 
> addition; I wasn't sure.
> 
> I guess I'll have to scupper that idea or exhaustively test it to prove 
> it works and has benefit - both of which are questionable at this point.

Frankly, I wouldn't invest that effort: every example in all programming 
languages I have seen has just a single acceptor thread.  Accepting 
socket connections is not an expensive operation so as long as you 
refrain from further processing a single thread is completely sufficient 
for handling accepts.

>>> I wanted to create a barrage of requests so next I
>>> create a pool of requester threads which each run
>>> something like this:
>>>
>>>   socket = Socket.new( AF_INET, SOCK_STREAM, 0 )
>>>   sockaddr = Socket.pack_sockaddr_in( 2200, 'localhost' )
>>>   socket.connect( sockaddr )
>>>   socket.puts "request #{i}"
>>>   socket.close
>> Btw, why don't you use TCPServer and TCPSocket?
> 
> yeah I was going to, I was just going off some examples in the 
> documentation and trying to cut my teeth on them and writing some tests. 
> But I was heading that way.
> 
>>> queue.
>> See above.
>>
>>> I haven't submitted the full code because it uses
>>> a threadpool library I'm still building/reviewing.
>> I would rather do something like this (sketeched):
>>
>> require 'thread'
>> queue = Queue.new
>> workers = (1..10).map do
>>    Thread.new queue do |q|
>>      until (cl = q.deq).equal? q
>>        # process data from / for client cl
>>        begin
>>          data = cl.gets.chomp
>>          @mutex.synchronize do
>>            puts "#{Thread.current} received #{data}..."
>>          end
>>        ensure
>>          cl.close
>>        end
>>      end
>>    end
>> end
>>
>> server = TCPServer.new ...
>>
>> while client = server.accept
>>    queue.enq client
>> end
>>
>> # elsewhere
>>
>>
>> TCPSocket.open do |sock|
>>     sock.puts "request"
>> end
> 
> Thanks for the example.
> I am scratching my head a little with this line:
>   until (cl = q.deq).equal? q
> 
> I'm familiar with Queue and its behaviour.

That's the worker thread termination code which basically works by 
checking whether the item fetched from the Queue is the Queue instance 
itself.  Actually I omitted the other half of the code (the place which 
puts all those q instances in itself) because I didn't want to make the 
code more complex and also termination condition was unknown (may be a 
signal, a number of handled connections etc.).

If you want to make termination more readable you can also do something 
like this

QueueTermination = Object.new
...
until QueueTermination.equal?(cl = q.deq)
   ...
end

or

until QueueTermination == (cl = q.deq)
   ...
end

or

until QueueTermination === (cl = q.deq)
   ...
end

The basic idea is to stuff something in the queue which is unambiguously 
identifiable as non work content.

Kind regards

	robert

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

In This Thread