Re: [Oorexx-devel] A few questions ad new RexxIORedirectorContext *ioContext

2022-08-09 Thread Rony G Flatscher
Thank you very much! Will try to inhibit/swallow the respective calls when not 
redirected. 

—-rony

Rony G. Flatscher (mobil/e)

> Am 09.08.2022 um 19:42 schrieb Rick McGuire :
> 
> 
> 
> 
>> On Tue, Aug 9, 2022 at 1:08 PM Rony G. Flatscher  
>> wrote:
>> Trying to understand the native APIs and their purpose for the new 
>> redirecting environments. It 
>> still seems to be the case that any result can be returned and assigned to 
>> the RC variable.
> 
> Which has always been the case for command handlers. 
>  
>> 
>> The question is about the usage of redirected input, output and error from 
>> the native side.
>> 
>> Should one use e.g. ReadInput[Buffer](), WriteOutput[Buffer]() and 
>> WriteError[Buffer]() only if the 
>> respective redirection tests (IsRedirectionRequested() and 
>> IsInputRedirected()/IsOutputRedirected()/IsErrorRedirected()) return true?
> Yes. While you don't have to, it's better to avoid the performance impact 
> associated with multiple interpreter callbacks that need to acquire the 
> interpreter lock. That's a pretty expensive noop.
> 
> 
>  
>> 
>> Would it be a fatal error to use e.g. Write{Error|Output}[Buffer]() although 
>> Is{Error|Output}Redirected() returns false? What would happen in such a 
>> case; is the operation 
>> ignored or would that have any adverse side effects?
> 
> The operation is ignored, but it has a non-zero cost associated with making 
> the call.  
>> 
>> And with ReadInput[Buffer]() would it just return 0 in length if it is not 
>> redirected?
> It doesn't currently, it just leaves the length unchanged. It probably 
> should. 
> 
> Rick
> 
>  
>> 
>> ---rony
>> 
>> 
>> 
>> 
>> ___
>> Oorexx-devel mailing list
>> Oorexx-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
> ___
> Oorexx-devel mailing list
> Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
___
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel


Re: [Oorexx-devel] A few questions ad new RexxIORedirectorContext *ioContext

2022-08-09 Thread Rick McGuire
On Tue, Aug 9, 2022 at 1:08 PM Rony G. Flatscher 
wrote:

> Trying to understand the native APIs and their purpose for the new
> redirecting environments. It
> still seems to be the case that any result can be returned and assigned to
> the RC variable.
>

Which has always been the case for command handlers.


>
> The question is about the usage of redirected input, output and error from
> the native side.
>
> Should one use e.g. ReadInput[Buffer](), WriteOutput[Buffer]() and
> WriteError[Buffer]() only if the
> respective redirection tests (IsRedirectionRequested() and
> IsInputRedirected()/IsOutputRedirected()/IsErrorRedirected()) return true?
>
Yes. While you don't have to, it's better to avoid the performance impact
associated with multiple interpreter callbacks that need to acquire the
interpreter lock. That's a pretty expensive noop.




>
> Would it be a fatal error to use e.g. Write{Error|Output}[Buffer]()
> although
> Is{Error|Output}Redirected() returns false? What would happen in such a
> case; is the operation
> ignored or would that have any adverse side effects?
>

The operation is ignored, but it has a non-zero cost associated with making
the call.

>
> And with ReadInput[Buffer]() would it just return 0 in length if it is not
> redirected?
>
It doesn't currently, it just leaves the length unchanged. It probably
should.

Rick



>
> ---rony
>
>
>
>
> ___
> Oorexx-devel mailing list
> Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
___
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel


[Oorexx-devel] A few questions ad new RexxIORedirectorContext *ioContext

2022-08-09 Thread Rony G. Flatscher
Trying to understand the native APIs and their purpose for the new redirecting environments. It 
still seems to be the case that any result can be returned and assigned to the RC variable.


The question is about the usage of redirected input, output and error from the 
native side.

Should one use e.g. ReadInput[Buffer](), WriteOutput[Buffer]() and WriteError[Buffer]() only if the 
respective redirection tests (IsRedirectionRequested() and 
IsInputRedirected()/IsOutputRedirected()/IsErrorRedirected()) return true?


Would it be a fatal error to use e.g. Write{Error|Output}[Buffer]() although 
Is{Error|Output}Redirected() returns false? What would happen in such a case; is the operation 
ignored or would that have any adverse side effects?


And with ReadInput[Buffer]() would it just return 0 in length if it is not 
redirected?

---rony




___
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel