Web lists-archives.com

Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)




----- Original Message -----

> From: Tatsuro MATSUOKA 
> To: Achim Gratz; cygwin
> Cc: 
> Date: 2019/3/6, Wed 10:10
> Subject: Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)
> 
>>>   From: Achim Gratz
> 
>>>   To: cygwin
>>>   Cc: 
>>>   Date: 2019/3/6, Wed 04:24
>>>   Subject: Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)
>>> 
>>>  T atsuro MATSUOKA writes:
>>>>    I contacted with Enrico who tells me the patch that I have shown.
>>> 
>>>   Yes, but that monkeys around the real problem.  What Yaakov is telling
>>>   you is that there are two options and we don't know yet which one 
> we
>>>   have to deal with.
>>> 
>>>   If O_NONBLOCK is needed, but does not work correctly under Cygwin, 
> then
>>>   that's a bug in Cygwin.  For this case, Corinna asks you to create 
> an
>>>   STC that demonstrates the bug so it can be triaged without having to
>>>   work with something as complex as the Qt terminal in Cygwin.
>>> 
>>>   If on the other hand O_NONBLOCK is in fact not needed and just shows
>>>   different behaviour on different systems without a bug in the
>>>   implementation being present, then upstream should remove that 
> argument.
>>> 
>>> 
>>>   Regards,
>>>   Achim.
>> 
>>  Seeing ML archive that Enrico indicated,
>> 
>>  Re: select() and named pipes
>> 
>>  #include <stdio.h>
>>  #include <stdlib.h>
>>  #include <errno.h>
>>  #include <sys/select.h>
>>  #include <sys/types.h>
>>  #include <sys/stat.h>
>>  #include <fcntl.h>
>>  #include <unistd.h>
>> 
>>  #define FIFONAME "/tmp/pipe"
>> 
>>  int main(void)
>>  {
>>      int fd;
>>      int nsel;
>>      fd_set readfds;
>>      FD_ZERO(&readfds);
>> 
>>      if (mkfifo(FIFONAME, 0600) < 0) {
>>          perror("mkfifo");
>>          exit(1);
>>      }
>> 
>>      fd = open(FIFONAME, O_RDONLY | O_NONBLOCK);
>> 
>>      if (fd < 0) {
>>          perror("open");
>>          remove(FIFONAME);
>>          exit(2);
>>      }
>> 
>>      FD_SET(fd, &readfds);
>>      do {
>>          nsel = select(fd + 1, &readfds, 0, 0, 0);
>>      } while (nsel == -1 && (errno == EINTR || errno == EAGAIN));
>> 
>>      if (nsel == -1) {
>>          perror("select");
>>          exit(3);
>>      }
>> 
>>      if (FD_ISSET(fd, &readfds)) {
>>          char buf[100];
>>          int status;
>>          int count = 0;
>>          printf("%d: ", ++count);
>>          while ((status = read(fd, buf, sizeof(buf) - 1))) {
>>              if (status > 0) {
>>                  buf[status] = '\0';
>>                  printf("%s", buf);
>>              } else if (errno == EAGAIN) {
>>                      printf("\n%d: ", ++count);
>>              } else {
>>                  perror("read");
>>                  break;
>>              }
>>          }
>>      }
>> 
>>      close(fd);
>>      remove(FIFONAME);
>>      return 0;
>>  }
>> 
>> 
>> 
>>  As you wrote this is a issue of Cygwin issue.
>>  But As long as O_NONBLOCK does not work on Cygwin, Enrico's workaround 
> can 
>>  be attached for qt.
> 
> Apart from Qt maintainer accepts Enrico's patch, I will raise O_NONBLOCK 
> issue by another post.


I have updated the cygiwn by setup because cygwin is updated to 3.0.1-1.

The above code works with or without O_NONBLOCK.

On cygwin 3.0.0, with O_NONBLOCK, the code does not work.

Thus situation is changing.

But connection of gnuplot to qnuplot_qt still fails.

There seem to be Qt for Cygwin specific issue.

I cannot narrow down the issue at this moment.


I have to use Qt with debug symbols and gnuplot build with -g option and trace the behaviors.

It take time and now I do not have enough time.

Please wait while.

Tatsuro


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple