1. Euphoria 2.6 Attn: Robert

Robert,

I have been playing around with the multitasking version of EU, and I have
also been experimenting with Al’s virtual thread manager, and neither seems
to remedy the freezing of Win32 applications when calling certain kinds of
functions. For example when I call BASS_StreamCreateURL (Bass.dll Library),
my app will freeze until a value is returned. This happens with most
functions that deal with connecting to the internet. I have always found
workarounds with EU limitations, but I have never been able to find a
solution to this problem. Is there a way to correct this with the current
version of EU, if not, will the new version of EU fix this problem?


----If you continue to do what you have always done,
you will get what you have always gotten.----

new topic     » topic index » view message » categorize

2. Re: Euphoria 2.6 Attn: Robert

C Bouzy wrote:
> I have been playing around with the multitasking version of EU, and I have
> also been experimenting with Al’s virtual thread manager, and neither seems
> to remedy the freezing of Win32 applications when calling certain kinds of
> functions. For example when I call BASS_StreamCreateURL (Bass.dll Library),
> my app will freeze until a value is returned. This happens with most
> functions that deal with connecting to the internet. I have always found
> workarounds with EU limitations, but I have never been able to find a
> solution to this problem. Is there a way to correct this with the current
> version of EU, if not, will the new version of EU fix this problem?

Euphoria's multitasking will not by itself solve the problem
of I/O calls that block, i.e. make you wait a long time
before they return. However you might look into the User Contribution
by Daniel Kluss, where, while using Euphoria multitasking, 
he creates a second independent O/S thread to handle 
a slow API call. I'm not sure how many different API calls 
that works for, but I think it's a lot.

Also, in general, you can sometimes substitute a non-blocking
I/O call for a blocking one, e.g. for reading a big chunk of data. 
In that case you could have a separate Euphoria task that polls 
a variable or memory location, waiting for the I/O operation 
to complete. While it's doing that, other Euphoria tasks could be 
free to do other useful things.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

3. Re: Euphoria 2.6 Attn: Robert

> I have been playing around with the multitasking version of EU, and I hav=
e
> also been experimenting with Al's virtual thread manager, and neither see=
ms
> to remedy the freezing of Win32 applications when calling certain kinds o=
f
> functions. For example when I call BASS_StreamCreateURL (Bass.dll Library=
),
> my app will freeze until a value is returned. This happens with most
> functions that deal with connecting to the internet. I have always found
> workarounds with EU limitations, but I have never been able to find a
> solution to this problem. Is there a way to correct this with the current
> version of EU, if not, will the new version of EU fix this problem?

There is a library in the Archive for making dll calls "non blocking"
- I believe this is what you need.

~Greg

new topic     » goto parent     » topic index » view message » categorize

4. Re: Euphoria 2.6 Attn: Robert

Robert Craig wrote:
However you might look into the User Contribution
> by Daniel Kluss, where, while using Euphoria multitasking, 
> he creates a second independent O/S thread to handle 
> a slow API call. 
> 

Robert,

Thank you for the response, and I tried Daniel’s library. Currently the lib
only works with the PD multitasking version of EU, and unfortunately the PD
version is too slow for my needs, even when compiled to C. What I am curious
about is why can’t a similar system be added to the official version of EU?
It is hard to develop commercial apps in EU when they freeze from time to
time when calling certain functions in DLLs. In my opinion “non-blocking”
support should be officially added and supported. Any possibility we can see
this happening in the near future?

----If you continue to do what you have always done,
you will get what you have always gotten.----

new topic     » goto parent     » topic index » view message » categorize

5. Re: Euphoria 2.6 Attn: Robert

C Bouzy wrote:
> 
> Robert Craig wrote:
> However you might look into the User Contribution
> > by Daniel Kluss, where, while using Euphoria multitasking, 
> > he creates a second independent O/S thread to handle 
> > a slow API call. 
> 
> Thank you for the response, and I tried Daniel’s library. Currently the lib
> only works with the PD multitasking version of EU, and unfortunately the PD
> version is too slow for my needs, even when compiled to C. 

It won't be too long before the official, fast interpreter 
is released, complete with multitasking. It should work just as well
as the PD source interpreter with Daniel's code.

> What I am curious
> about is why can’t a similar system be added to the official version of EU?
> It is hard to develop commercial apps in EU when they freeze from time to
> time when calling certain functions in DLLs. In my opinion “non-blocking”
> support should be officially added and supported. Any possibility we can see
> this happening in the near future?

Yes, I might add it officially.
I need some time to study it carefully.
For instance, does it create any race conditions or other
glitches that I would need to guard against or document.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

6. Re: Euphoria 2.6 Attn: Robert

Robert Craig wrote:
> 

> Yes, I might add it officially.
> I need some time to study it carefully.
> For instance, does it create any race conditions or other
> glitches that I would need to guard against or document.
> 

Hi Robert,

I was able to get Daniel's lib to work with the Official RDS version of EU,
and for some odd reason it is VERY slow. I used the Bass demos for testing
and I got extreme slow downs. I hope you do officially implement a similar 
system soon.
 

----If you continue to do what you have always done,
you will get what you have always gotten.----

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu