Neil Hodgson wrote:
>   Is there a complete version of this patch?

Hi everybody,

I'm back from my holiday. As Steve mentionned, there is still
the issue of 'dead pipes', pipes left by after a "crash" of SciTE.

I had noticed a problem with those, I couldn't restart SciTE after
having killed it, because of the single instance code. I thought
that it was because it found a pipe, sent messages and terminated
silently. However, I can't reproduce it now, and the situation I
described is not possible:

"A  process  can open a FIFO in non-blocking mode. In this case, opening
 for read only will succeed even if no-one has opened on the write  side
 yet;  opening  for  write  only will fail with ENXIO (no such device or
 address) unless the other end has already been opened."

(`man 7 fifo`)

Maybe the previous SciTE instance had become a zombie-process,
and was still reading from the pipe, I don't know.

This means there is no real issue, AFAIK, with dead pipes. Is it a
problem if they stay in the temporary folder?

If we want to clean them up, rather than the solution proposed by
Steve, "check [...] whether a particular pipe corresponds to an
actual running version of SciTE by extracting the pid and calling
kill(pid,0) to check if the pid is alive", I would make use of
open() in non-blocking and write-only mode and if it fails we know
we can remove the file, because no SciTE instance is reading from it.

As for the last version of the patches, I'll resync them with
the last CVS revision and upload them. The three patches are:

1) the new Director extension
2) the revised single instance code, making use of the director
3) the "focus:" message
   activation of the SciTE window when using check.if.already.open=1

There was some discussion about the last patch*, any new thoughts about that?

Regards,
Nicolas

_______________________________________________
Scite-interest mailing list
Scite-interest@lyra.org
http://mailman.lyra.org/mailman/listinfo/scite-interest

Reply via email to