Re: Q: call_external hangs IDL Windows GUI? [message #43606] |
Wed, 20 April 2005 14:05  |
b_gom
Messages: 105 Registered: April 2003
|
Senior Member |
|
|
Joshua,
call_external does block in Windows (there is no multithreading in the
IDL interpreter) You can, however, call an external function that
starts a thread and then returns quickly to IDL. You will have to sort
out the messaging between the threads on your own though.
Good luck,
Brad
Joshua Lynch wrote:
> Hello,
> I have an application that uses call_external to call a C function
> which waits for some network input and then returns. Unfortunately
> it seems that entire IDL IDE hangs for every call to call_external.
>
> Is this, in fact, a correct assumption?
>
> I've tested the same application under Unix and it does not hang the
> IDE.
>
> It seems as though when I'm running the application and don't click
> anywhere in the IDE, it runs fine (sort of, it prints its data out 2,
> 3, 4 five lines at a time, instead of smoothly, one at a time). As
> soon as I click anywhere in the IDE the menu bar disappears and if I
> click again the title bar displays the dreaded "Application Not
> Responding" string.
>
> My guess is that the IDE is stopped while waiting for the C function
> to return?
>
> Am I missing something simple?
>
> Thanks in advance.
>
>
> --josh
|
|
|
Re: Q: call_external hangs IDL Windows GUI? [message #43746 is a reply to message #43606] |
Fri, 22 April 2005 11:49   |
Joshua Lynch
Messages: 3 Registered: April 2005
|
Junior Member |
|
|
Do DLMs suffer the same blocking problem under Windows?
Thanks for the response!
--josh
b_gom@hotmail.com wrote:
> Joshua,
>
> call_external does block in Windows (there is no multithreading in the
> IDL interpreter) You can, however, call an external function that
> starts a thread and then returns quickly to IDL. You will have to sort
> out the messaging between the threads on your own though.
>
> Good luck,
>
> Brad
>
> Joshua Lynch wrote:
>> Hello,
>> I have an application that uses call_external to call a C function
>> which waits for some network input and then returns. Unfortunately
>> it seems that entire IDL IDE hangs for every call to call_external.
>>
>> Is this, in fact, a correct assumption?
>>
>> I've tested the same application under Unix and it does not hang the
>> IDE.
>>
>> It seems as though when I'm running the application and don't click
>> anywhere in the IDE, it runs fine (sort of, it prints its data out 2,
>> 3, 4 five lines at a time, instead of smoothly, one at a time). As
>> soon as I click anywhere in the IDE the menu bar disappears and if I
>> click again the title bar displays the dreaded "Application Not
>> Responding" string.
>>
>> My guess is that the IDE is stopped while waiting for the C function
>> to return?
>>
>> Am I missing something simple?
>>
>> Thanks in advance.
>>
>>
>> --josh
>
|
|
|
Re: Q: call_external hangs IDL Windows GUI? [message #43764 is a reply to message #43606] |
Tue, 26 April 2005 18:17  |
Joshua Lynch
Messages: 3 Registered: April 2005
|
Junior Member |
|
|
b_gom@hotmail.com wrote:
> Joshua,
>
> call_external does block in Windows (there is no multi-threading in the
> IDL interpreter) You can, however, call an external function that
> starts a thread and then returns quickly to IDL. You will have to sort
> out the messaging between the threads on your own though.
>
Any suggestions on how to make IDL wait until the thread is completed?
Is there a way to block on a variable (preferably not to busy wait) in
IDL and have the C code modify it? Or should I just go RTFM? :-)
Thanks again.
--josh
|
|
|