Writing to /dev/clipboard from multiple processes in Bash gives inconsistent behaviour

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Feb 13 10:20:00 GMT 2015


On Feb 13 00:51, Andrey Repin wrote:
> Greetings, Corinna Vinschen!
> 
> > On Feb 12 13:45, Adam Dinwoodie wrote:
> >> I've spotted some slightly odd behaviour when writing things from
> >> multiple processes to /dev/clipboard.
> >> 
> >> Easiest to show this with an example:
> >> 
> >>     for n in {1..10}; do echo $n; done >/dev/clipboard; cat /dev/clipboard
> >> 
> >> I expect this to print out the numbers 1–10 to the terminal.  Sometimes
> >> it does, but sometimes it misses out some of the numbers at the end;
> >> printing the digits 1–8, say, but no more.  Generally it gets to around
> >> 7–9, but I've seen it managing to only get up to 3 on one occasion.
> 
> > I can't reproduce this.  First I tried this manually a couple of times,
> > but then I created a loop:
> 
> >   for i in {1..1000}
> >   do
> >     echo > /dev/clipboard
> >     for n in {1..10}; do echo $n; done > /dev/clipboard
> >     grep -q 10 /dev/clipboard || cat /dev/clipboard
> >   done
> 
> > and it didn't fail once.  I'm not sure what to do if I don't have a
> > reproducible testcase...
> 
> Failed ~20 times for me. And the more, the more I run the test.
> What is more curious, is if I modify your test to only print "1",
> 
> while true; do
>   echo > /dev/clipboard
>   for n in {1..10}; do echo $n; done > /dev/clipboard
>   grep -q 10 /dev/clipboard || grep 1 /dev/clipboard
> done
> 
> it sporadically print 10 !
> And my mail client actively flashing "paste" buttons, when the script is
> working in background. May be that's it.
> 
> This is more visible:
> $ while true; do { i=$(( $i+1 )); echo > /dev/clipboard; for n in {1..10}; do echo $n; done > /dev/clipboard; grep -q 10 /dev/clipboard || { grep 10 /dev/clipboard && echo $i;};}; done;

Nope, no way.  I'm running this latter test for 45 minutes now, with
no output.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20150213/cbe08d53/attachment.sig>


More information about the Cygwin mailing list