RE: references - inject sub/params into longterm running thread

2005-07-25 Thread mailware
hi there

basically...I have instantiated long term running thread/s.

in the main thread, i want to pass a subroutine (code ref) and its parameters 
into a threads::shared variable, then execute it in a separate thread running 
in a while loop.

I want to do this, because having a group of a couple instantiated long term 
running threads, before processing starts, would be less expensive, then 
instantiated many short term threads for each call...which would be expensive 
and affect performance due to the lag in thread creation.

calls and subroutine's/parameters will vary, so injecting the code into a 
running thread is what i would like.

I hope you all now can understand. Thanks in advance for your help.

Regards,
- Jeremy A. 
 

Quoting John Serink [EMAIL PROTECTED]:

 Why don't you pass the parameters as references.
 They work like pointers in C kindof.
 
 Why do you want to reference your subroutine?




  -Original Message-
  From: [EMAIL PROTECTED] 
  [mailto:[EMAIL PROTECTED] On 
  Behalf Of [EMAIL PROTECTED]
  Sent: Tuesday, July 26, 2005 2:19 AM
  To: $Bill Luebkert
  Cc: perl-win32-users@listserv.ActiveState.com
  Subject: Re: references 
  
  
  hello again,
  
hello all,

here is a ref/deref problem

I need to take a socket handle, convert it to a socket 
  ref, then a 
scaler
string 

A bit later in the same script, I need to take that scaler string 
and turn
   it
back to a socket ref, and deref it back to the socket handle.
   
   Maybe instead of asking for the way to implement your solution, you 
   should describe the complete problem and see if we can come 
  up with an 
   alternate solution that is a little less convoluted.  :)
  
  let me clarify my problem.
  
  I have a reference of a subroutine.
  
  eg.
  
  $sub = test;
  
  ..deref and execute
  
  $sub;
  
  ...
  
  sub test {
  my ($sockethandle,$blah...) = @_;
  ..do something
  }
  
  
  in order to pass the paramenters, i decided to do this : 
  
  sub main {
  
  my $sub = test|$sockethandle;
  ($sub,@_) = split(/\|/,$sub);
  
  $sub;
  }
  
  
  if this is to work correctly, I need to take a socket handle, 
  convert it to a 
  socket ref, then a scaler, so i can pass it as a parameter. 
  in order to use the 
  socket later, i have to take the scaler, convert it to the 
  socket ref, then 
  dereference it.
  
  Is there an easier way to pass parameters with a subroutine 
  reference? 
  
  
  
  
  
  
  ___
  Perl-Win32-Users mailing list 
  Perl-Win32-Users@listserv.ActiveState.com
  To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
  
 




___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


RE: references - inject sub/params into longterm running thread

2005-07-25 Thread John Serink
If you use shared arrays or hashes, Win32 perl will leak handles if you
use threads.
It will leak 2 handles per thread. If you're only starting say a couple
of threads an hour, no problem. If you're starting hindreds, within a
week or so, you'll run out of resource space for the process and it will
crash.

The leaking handles is a known bug when using threads on Win32.

Cheers,
John

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, July 26, 2005 11:20 AM
 To: perl-win32-users@listserv.ActiveState.com
 Cc: John Serink
 Subject: RE: references - inject sub/params into longterm 
 running thread
 
 
 hi there
 
 basically...I have instantiated long term running thread/s.
 
 in the main thread, i want to pass a subroutine (code ref) 
 and its parameters 
 into a threads::shared variable, then execute it in a 
 separate thread running 
 in a while loop.
 
 I want to do this, because having a group of a couple 
 instantiated long term 
 running threads, before processing starts, would be less 
 expensive, then 
 instantiated many short term threads for each call...which 
 would be expensive 
 and affect performance due to the lag in thread creation.
 
 calls and subroutine's/parameters will vary, so injecting the 
 code into a 
 running thread is what i would like.
 
 I hope you all now can understand. Thanks in advance for your help.
 
 Regards,
 - Jeremy A. 
  
 
 Quoting John Serink [EMAIL PROTECTED]:
 
  Why don't you pass the parameters as references.
  They work like pointers in C kindof.
  
  Why do you want to reference your subroutine?
 
 
 
 
   -Original Message-
   From: [EMAIL PROTECTED]
   [mailto:[EMAIL PROTECTED] On 
   Behalf Of [EMAIL PROTECTED]
   Sent: Tuesday, July 26, 2005 2:19 AM
   To: $Bill Luebkert
   Cc: perl-win32-users@listserv.ActiveState.com
   Subject: Re: references 
   
   
   hello again,
   
 hello all,
 
 here is a ref/deref problem
 
 I need to take a socket handle, convert it to a socket
   ref, then a
 scaler
 string
 
 A bit later in the same script, I need to take that scaler 
 string
 and turn
it
 back to a socket ref, and deref it back to the socket handle.

Maybe instead of asking for the way to implement your solution, 
you
should describe the complete problem and see if we can come 
   up with an
alternate solution that is a little less convoluted.  :)
   
   let me clarify my problem.
   
   I have a reference of a subroutine.
   
   eg.
   
   $sub = test;
   
   ..deref and execute
   
   $sub;
   
   ...
   
   sub test {
   my ($sockethandle,$blah...) = @_;
   ..do something
   }
   
   
   in order to pass the paramenters, i decided to do this :
   
   sub main {
   
   my $sub = test|$sockethandle;
   ($sub,@_) = split(/\|/,$sub);
   
   $sub;
   }
   
   
   if this is to work correctly, I need to take a socket handle,
   convert it to a 
   socket ref, then a scaler, so i can pass it as a parameter. 
   in order to use the 
   socket later, i have to take the scaler, convert it to the 
   socket ref, then 
   dereference it.
   
   Is there an easier way to pass parameters with a subroutine
   reference? 
   
   
   
   
   
   
   ___
   Perl-Win32-Users mailing list
   Perl-Win32-Users@listserv.ActiveState.com
   To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
   
  
 
 
 
 
 

___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs


Re: references - inject sub/params into longterm running thread

2005-07-25 Thread $Bill Luebkert
[EMAIL PROTECTED] wrote:

 hi there
 
 basically...I have instantiated long term running thread/s.
 
 in the main thread, i want to pass a subroutine (code ref) and its parameters 
 into a threads::shared variable, then execute it in a separate thread running 
 in a while loop.
 
 I want to do this, because having a group of a couple instantiated long term 
 running threads, before processing starts, would be less expensive, then 
 instantiated many short term threads for each call...which would be expensive 
 and affect performance due to the lag in thread creation.
 
 calls and subroutine's/parameters will vary, so injecting the code into a 
 running thread is what i would like.
 
 I hope you all now can understand. Thanks in advance for your help.

We're getting closer.  Now create a proper test snippet that uses threads
and we'll see if we can help where it fails.

-- 
  ,-/-  __  _  _ $Bill LuebkertMailto:[EMAIL PROTECTED]
 (_/   /  )// //   DBE CollectiblesMailto:[EMAIL PROTECTED]
  / ) /--  o // //  Castle of Medieval Myth  Magic http://www.todbe.com/
-/-' /___/__/_/_http://dbecoll.tripod.com/ (My Perl/Lakers stuff)
___
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs