[Interest] QProcess unbuffered

Scott Bloom scott at towel42.com
Fri Mar 17 22:00:54 CET 2023


Maybe I missed it.  But I don’t see where you use the InheritableHandleInfo template.





-----Original Message-----
From: Interest <interest-bounces at qt-project.org> On Behalf Of Thiago Macieira
Sent: Friday, March 17, 2023 1:45 PM
To: interest at qt-project.org
Subject: Re: [Interest] QProcess unbuffered

On Tuesday, 7 March 2023 18:18:53 PDT Scott Bloom wrote:
> I really want to thank Björn
> 
> With his starting point, I was able to tweak his changes, and seem to 
> have it working 😊 I have more testing to do. But it was actually 
> pretty straight forward.
> 
> * I use VS (2022) so the packing was different
>         __attribute__((packed)) became  __pragma( pack( push, 1 ) ) 
> struct HackedHandlePasser * The handles are 64 bit in the existing 
> Startup Info, so I kept them as such, which changed the definition of 
> HANDLE32 using
> HANDLE32 = std::int32_t; was removed, and the standard HANDLE defined 
> in windows.h was used * The static assert was updated to reflect this
> * I copy all 3 handles from the existing startupinfo
>        std::memcpy(&handles.Handles[0], &invalid, 4);
>        std::memcpy(&handles.Handles[1], &pipe.Write, 4);
>        std::memcpy(&handles.Handles[2], &pipe.Write, 4);
> 
>        became
> 
>         std::memcpy( &handles.Handles[ 0 ], 
> &args->startupInfo->hStdInput, sizeof( HANDLE ) ); std::memcpy( 
> &handles.Handles[ 1 ], &args->startupInfo->hStdOutput, sizeof( HANDLE 
> ) ); std::memcpy( &handles.Handles[ 2 ], 
> &args->startupInfo->hStdError, sizeof( HANDLE ) );

I'm trying to add this to QProcess but it's not behaving as expected on Windows.

https://codereview.qt-project.org/c/qt/qtbase/+/467281

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Cloud Software Architect - Intel DCAI Cloud Engineering


More information about the Interest mailing list