jed-users mailing list

[2007 Date Index] [2007 Thread Index] [Other years]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]

Re: How to detect when stdout is closed?


=?UTF-8?Q?J=C3=B6rg?= Sommer <joerg@xxxxxxxxxxxx> wrote:
>Not really. The functions is blocked in a fopen() so I can't check for
>this regularly.
>
>forever
>{
>    variable fifo = fopen(fifo_name, "r");

  Are you saying that it blocks here?  Or in the fgets statement?  
  If either case, you might try using the lower level functions in a
  non-blocking mode, e.g.,

     fd = open (fifo_name, O_RDONLY, O_NONBLOCK);
        .
	.
      
      variable nread;
      while (nread = read (fp, &buf, nbytes), nread == -1)
        {
	   if (errno == EAGAIN)
	     {
	        % Nothing available to read.
	        check_if_parent_is_alive ();
		  .
		  .
		sleep (1);
		continue;
	     }
	   throw IOError;
	}
	
  This requires a bit more work that is the price you pay for
  non-blocking I/O.

>BTW: What's your decision regarding the window popup problem for XJed?
>  It's not possible to bring XJed in forground, if it isn't active.
>  suspend() suspends the editor, if it hasn't the focus, but I want to
>  raise it as requested from another application.

  Would removing the "kill (0, SIGSTOP)" line in xterm.c be sufficient
to deal with the issue?

Thanks,
--John

--------------------------
To unsubscribe send email to <jed-users-request@xxxxxxxxxxx> with
the word "unsubscribe" in the message body.
Need help? Email <jed-users-owner@xxxxxxxxxxx>.


[2007 date index] [2007 thread index]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]