On Sat, 24 Dec 2016 04:40:20 +0100 Vincent Torri <vincent.to...@gmail.com> said:

> you will have anyway #ifdef because of the [win32 | fd]_handler_add()
> in ethumb_slave, so...

that also shouldn't be there. no fd handlers for stdin etc. no it the portable
way with thread+feedback.

yes - an abstraction would be good but with windows it seems a royal pain as
every "fd" is different and is special. so one abstraction per kind of fd...

> On Sat, Dec 24, 2016 at 1:45 AM, Carsten Haitzler <ras...@rasterman.com>
> wrote:
> > On Fri, 23 Dec 2016 12:50:34 +0100 Vincent Torri <vincent.to...@gmail.com>
> > said:
> >
> >> On Fri, Dec 23, 2016 at 11:23 AM, Andrii Kroitor <an.kroi...@samsung.com>
> >> wrote:
> >> >
> >> > On 23.12.16 06:35, Vincent Torri wrote:
> >> >> hey
> >> >>
> >> >> i don't like the idea of getc/ungetc in the thread, imho it's a bad hack
> >> >> you do that for ethumb_slave, i guess, but i think that the wait for
> >> >> input should be in ethumb slave, with a thread and ReadConsole(). and
> >> >> not the hack you did
> >> >>
> >> >> Vincent
> >> >>
> >> >> ------------------------------------------------------------------------------
> >> >> Developer Access Program for Intel Xeon Phi Processors
> >> >> Access to Intel Xeon Phi processor-based developer platforms.
> >> >> With one year of Intel Parallel Studio XE.
> >> >> Training and support from Colfax.
> >> >> Order your platform today.http://sdm.link/intel
> >> >> _______________________________________________
> >> >> enlightenment-devel mailing list
> >> >> enlightenment-devel@lists.sourceforge.net
> >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >> >>
> >> > I'm also not 100% happy with getc/ungetc thread, but this was the only
> >> > solution, that works in all cases.
> >> > I have tried various approaches, but all other are failing to wait for
> >> > input correctly at least in one of the following cases:
> >> > 1. direct run and input from console
> >> > 2. debug run and input from console (yep, this is somehow different from
> >> > case 1 :( )
> >> > 3. redirected stdin input ( "app.exe <in.txt" )
> >> > 4. direct run within pipeline ( "some_other_app.exe | app.exe" )
> >> > 5. run as subprocess with stdin replaced with pipe from parent (i.e.
> >> > parent uses ecore_exe)
> >> >
> >> > If I remember it right ReadConsole will fail in cases 3-5.
> >> >
> >> > So if you find some better solution that will work in all this cases it
> >> > will be great.
> >
> > the POINT of moving it to a thread and just using getc/gets was to be
> > portable and not have #ifdef'd per os solutions.
> >
> >> 1) try with filtering the console mode and flushing the buffer in
> >> ethumb_slave:
> >>
> >> DWORD old_mode;
> >> HANDLE stdin_handle;
> >> stdin_handle = GetStdHandle(STD_INPUT_HANDLE);
> >> GetConsoleMode(, &old_mode);
> >> mode = oldmode ^ ENABLE_MOUSE_INPUT ^ ENABLE_WINDOW_INPUT;
> >> SetConsoleMode(stdin_handle, mode);
> >> FlushConsoleInputBuffer(stdin_handle);
> >>
> >> then you should be able to wait on stdin_handle after that.
> >>
> >> anyway, ReadConsoleInput() should be used intead of read()
> >>
> >> you should restore the old mode to restore it at the end :
> >>
> >> SetConsoleMode(stdin_handle, old_mode);
> >>
> >> 2) try to redirect console input handle (not tested):
> >>
> >> HANDLE stdin_handle;
> >> int fd;
> >> FILE *fp;
> >>
> >> stdin_handle = GetStdHandle(STD_INPUT_HANDLE);
> >> fd = _open_osfhandle((intptr_t)stdin_handle, _O_TEXT);
> >> fp = _fdopen(fd, "r");
> >> *stdin = *fp;
> >> setvbuf(stdin, NULL, _IONBF, 0);
> >>
> >> 3) there is another possibility : using WSAWaitForMultipleEvents(),
> >> but that would mean another way to add a handler in ecore_main.c.
> >>
> >> note that it would save my day for another thing i'am working on.
> >>
> >>
> >> > I disagree with you about this code placement. My point is that as many
> >> > as possible platform-dependent things should be in libraries rather than
> >> > in client-side code.
> >>
> >> it's not possible to have everything platform dependant. I know some
> >> stuff that will never be platform dependant, by the very nature of
> >> Windows.
> >>
> >> but I think that the ecore_exe way should be the way to go, even if it
> >> needs modifications
> >>
> >> Vincent
> >>
> >> > --
> >> > *Best Regards,
> >> > Andrii Kroitor
> >> > * Engineer, Tizen Platform Lab
> >> >
> >> > Samsung R&D Institute Ukraine
> >> > 57, Lva Tolstogo St., Kyiv 01032, Ukraine
> >> > email: an.kroi...@samsung.com <mailto:an.kroi...@samsung.com>
> >> >
> >> >
> >> > ------------------------------------------------------------------------------
> >> > Developer Access Program for Intel Xeon Phi Processors
> >> > Access to Intel Xeon Phi processor-based developer platforms.
> >> > With one year of Intel Parallel Studio XE.
> >> > Training and support from Colfax.
> >> > Order your platform today.http://sdm.link/intel
> >> > _______________________________________________
> >> > enlightenment-devel mailing list
> >> > enlightenment-devel@lists.sourceforge.net
> >> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>
> >> ------------------------------------------------------------------------------
> >> Developer Access Program for Intel Xeon Phi Processors
> >> Access to Intel Xeon Phi processor-based developer platforms.
> >> With one year of Intel Parallel Studio XE.
> >> Training and support from Colfax.
> >> Order your platform today.http://sdm.link/intel
> >> _______________________________________________
> >> enlightenment-devel mailing list
> >> enlightenment-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>
> >
> >
> > --
> > ------------- Codito, ergo sum - "I code, therefore I am" --------------
> > The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to