[#397988] Help with sqlite3 please — Kaye Ng <lists@...>

I'm on Windows 7 Ultimate, 64-bit

18 messages 2012/08/03
[#397989] Re: Help with sqlite3 please — Chris Hulan <chris.hulan@...> 2012/08/03

sqlite is not ruby, so you should look for a sqlite group ;)

[#397990] Re: Help with sqlite3 please — Kaye Ng <lists@...> 2012/08/03

> However it looks like you have 'SQL' at the beginning of your CREATE

[#398031] Gem install or usage problem in shared environment — Tom Moulton <lists@...>

I am moving to a Westhost shared CPanel account and I am trying to set

17 messages 2012/08/04
[#398077] Re: Gem install or usage problem in shared environment — Tom Moulton <lists@...> 2012/08/06

I got a solution from WestHost and it may help others:

[#398086] Re: Gem install or usage problem in shared environment — Ryan Davis <ryand-ruby@...> 2012/08/07

[#398088] Re: Gem install or usage problem in shared environment — Tom Moulton <lists@...> 2012/08/07

Ryan Davis wrote in post #1071503:

[#398043] Redefining constants for a given instance only — "Andrea Dallera" <andrea@...>

Hello,=0A=0A=C2=A0 =C2=A0 let's say we have two empty classes:=0A=0Aclass=

9 messages 2012/08/05

[#398063] Join with ActiveRecord using non-standard schema — Tedi Roca <lists@...>

Hi,

13 messages 2012/08/06

[#398135] Help with database-related code pls — Kaye Ng <lists@...>

Hi guys! This is just a part of the code of a program that can load a

12 messages 2012/08/08

[#398190] How do you order your class methods? — masta Blasta <lists@...>

Just getting some layout ideas from other fellow devs.

11 messages 2012/08/10

[#398245] namespace instance methods? — John Doe <lists@...>

I have a large class with many instance methods that I want to

14 messages 2012/08/13

[#398287] Idea: def ... end returns the symbolized version of the newly-defined method, instead of nil — Peter <lumbergh@...>

This would allow useful syntax constructs such as this:

9 messages 2012/08/13

[#398362] case vs if-else — ajay paswan <lists@...>

Which one is faster?

20 messages 2012/08/16

[#398385] A Ruby class is never closed — Rubyist Rohit <lists@...>

Is it true that a Ruby class definition is never closed? Even after

18 messages 2012/08/16

[#398504] How to create an EXecutable file (Linux) — Fosiul Alam <lists@...>

Hi

13 messages 2012/08/22

[#398506] Save a file by clicking on a link — ajay paswan <lists@...>

I clicked a link to download a file using ruby, now I see the open-save

41 messages 2012/08/22

[#398641] force child threads run paralelly? — ajay paswan <lists@...>

I have created two child thread using main thread- child1 and child2.

19 messages 2012/08/28
[#398644] Re: force child threads run paralelly? — ajay paswan <lists@...> 2012/08/28

Ruby version:

[#398648] Re: force child threads run paralelly? — Tony Arcieri <tony.arcieri@...> 2012/08/28

On Tue, Aug 28, 2012 at 7:19 AM, ajay paswan <lists@ruby-forum.com> wrote:

[#398684] Can I do this with Ruby and sqlite alone? — Kaye Ng <lists@...>

Hi guys.

16 messages 2012/08/29

Re: TCPserver how to signal EOT

From: Robert Klemme <shortcutter@...>
Date: 2012-08-21 13:53:25 UTC
List: ruby-talk #398493
On Tue, Aug 21, 2012 at 3:17 PM, tammy roberts2 <lists@ruby-forum.com> wrote:
>> Aha.  The issue with that is that you can read only with one thread at
>> a time from the socket.  Since you created a thread after socket
>> accept and that thread loops reading this should be the only thread
>> fetching data from the socket.  Sending is a different story (but btw.
>> you should also properly synchronize to make sure only one thread
>> writes at a time).
>
> Please correct me if I am wrong, but shouldn't there be no problem as
> the yield is inside the thread itself? It seems like the listen method
> can not pass the socket to the caller until it is done reading from it.

Right you are.  But this is a quite inefficient approach IMHO: you
must read all announced messages before you can process them.  Also,
what happens if there are messages after the initially announced n
messages?  Processing will usually be easier and more efficient if you
yield each message as soon as it has arrived.  But then again, I do
know nothing about your use case and your requirements.

>> No.  Method #listen does not yield.  It's the reader thread which you
>> start in #listen.  And note that this can be a problem if the block
>> you pass in is not prepared to be executed concurrently.
>
> Ah good observation. That makes it seem like the first issue you point
> out will not come into play though, because the reader thread in listen
> is what yields the socket so it seems it will not yield it until it is
> done reading from it. Am I maybe misunderstanding something here?

No, apparently not.  But see above.

> I am going to switch my code to read and write as per your suggestion. I
> notice that these methods do not seem to be documented in the Ruby
> socket documentation, could you maybe point me towards some
> documentation regarding them please? I will post my networking code once
> more when it is finished up, again thanks for the tips and advice.

Which methods are not documented?  If you refer to #read and #write,
please observe this:

$ irb19 -r socket
Ruby version 1.9.3
irb(main):001:0> TCPSocket.instance_method(:read)
=> #<UnboundMethod: TCPSocket(IO)#read>
irb(main):002:0> TCPSocket.instance_method(:write)
=> #<UnboundMethod: TCPSocket(IO)#write>

In other words: these methods are inherited from class IO.

Kind regards

robert


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

In This Thread

Prev Next