Concurrent writes to mkfifo seem to get lost









up vote
0
down vote

favorite












I am writing a script that will setup an environment of machines. I have the ability to put a startup script on the machines and so I am trying to use a named pipe mkfifo in unix on my "workstation" machine that will listen for writes from these new machines when they come online.



The problem is, I have no control over when these machines may come online. In total there are over 20 machines that are being started simultaneously and I have tried to simulate the effects of a named pipe being written to multiple times before it has a chance to read and have had startling results....



I wrote two small test scripts:



mkfifogen.sh



#!/bin/bash
mkfifo h
testing=""
sleep 10
for((i=0;i<5;i++));do
echo $I
while read line;do
testing+="$line"
done < h
done

echo "$testing"
rm -f h


and



mkfifowrite.sh



#!/bin/bash
for((i=0;i<5;i++));do
echo "this is a test $i" > h
done


When I run the mkfifogen.sh followed by the mkfifowrite.sh the output is as follows



0
1
2


Then the mkfifowrite.sh script exits and the mkfifogen.sh script hangs



I then have to run the mkfifowrite.sh script 3 more times, and each time it will cause the output on the mkfifogen.sh script to increment one more time. The last run will cause the value of testing to be output 4 times, so my output after 4 runs of the mkfifowrite.sh script and once of the mkfifogen.sh script looks like this:



0
1
2
3
4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4


What I am expecting to see after running mkfifogen.sh and mkfifowrite.sh once each is simply this:



0
1
2
3
4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4


I have looked around online quite a bit and there are some cryptic answers to this, but I can't seem to make much sense out of them. I feel like this link might hold my answer, but I'm not sure https://unix.stackexchange.com/questions/68146/what-are-guarantees-for-concurrent-writes-into-a-named-pipe



TL;DR:



How do I ensure that all writes to a named pipe, regardless of quick in succession they are executed, are handled independently by the read?










share|improve this question





















  • Down voter, do you have a reason? If so, please comment on how I can improve my question...
    – CraigR8806
    Nov 10 at 14:53










  • This is a little tricky. First, are you intentionally opening and closing the pipe in mkfifowrite.sh at each iteration, or do you want a single run of mkfifowrite.sh to correspond to a single iteration of the for loop in mkfifogen.sh? Second, I'm getting different results depending on which version of bash I used, and possibly whether I run this under macOS or Linux. Which version of bash are you using?
    – chepner
    Nov 10 at 15:54










  • Yes, each iteration of the for loop would emulate a different write to the pipe, like a machine coming online and relaying its status. I am running this on RHEL. @chepner
    – CraigR8806
    Nov 10 at 15:56











  • Essentially, I want to understand what happens when writes stack up on the pipe before the read has an attempt to read the first one.
    – CraigR8806
    Nov 10 at 15:59










  • Note that you aren't testing concurrent writes; you have a single reader and a single writer, and that writer is just making a series of sequential writes. The real problems will happen if you try to run mkfifowrite.sh multiple times in parallel.
    – chepner
    Nov 10 at 15:59














up vote
0
down vote

favorite












I am writing a script that will setup an environment of machines. I have the ability to put a startup script on the machines and so I am trying to use a named pipe mkfifo in unix on my "workstation" machine that will listen for writes from these new machines when they come online.



The problem is, I have no control over when these machines may come online. In total there are over 20 machines that are being started simultaneously and I have tried to simulate the effects of a named pipe being written to multiple times before it has a chance to read and have had startling results....



I wrote two small test scripts:



mkfifogen.sh



#!/bin/bash
mkfifo h
testing=""
sleep 10
for((i=0;i<5;i++));do
echo $I
while read line;do
testing+="$line"
done < h
done

echo "$testing"
rm -f h


and



mkfifowrite.sh



#!/bin/bash
for((i=0;i<5;i++));do
echo "this is a test $i" > h
done


When I run the mkfifogen.sh followed by the mkfifowrite.sh the output is as follows



0
1
2


Then the mkfifowrite.sh script exits and the mkfifogen.sh script hangs



I then have to run the mkfifowrite.sh script 3 more times, and each time it will cause the output on the mkfifogen.sh script to increment one more time. The last run will cause the value of testing to be output 4 times, so my output after 4 runs of the mkfifowrite.sh script and once of the mkfifogen.sh script looks like this:



0
1
2
3
4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4


What I am expecting to see after running mkfifogen.sh and mkfifowrite.sh once each is simply this:



0
1
2
3
4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4


I have looked around online quite a bit and there are some cryptic answers to this, but I can't seem to make much sense out of them. I feel like this link might hold my answer, but I'm not sure https://unix.stackexchange.com/questions/68146/what-are-guarantees-for-concurrent-writes-into-a-named-pipe



TL;DR:



How do I ensure that all writes to a named pipe, regardless of quick in succession they are executed, are handled independently by the read?










share|improve this question





















  • Down voter, do you have a reason? If so, please comment on how I can improve my question...
    – CraigR8806
    Nov 10 at 14:53










  • This is a little tricky. First, are you intentionally opening and closing the pipe in mkfifowrite.sh at each iteration, or do you want a single run of mkfifowrite.sh to correspond to a single iteration of the for loop in mkfifogen.sh? Second, I'm getting different results depending on which version of bash I used, and possibly whether I run this under macOS or Linux. Which version of bash are you using?
    – chepner
    Nov 10 at 15:54










  • Yes, each iteration of the for loop would emulate a different write to the pipe, like a machine coming online and relaying its status. I am running this on RHEL. @chepner
    – CraigR8806
    Nov 10 at 15:56











  • Essentially, I want to understand what happens when writes stack up on the pipe before the read has an attempt to read the first one.
    – CraigR8806
    Nov 10 at 15:59










  • Note that you aren't testing concurrent writes; you have a single reader and a single writer, and that writer is just making a series of sequential writes. The real problems will happen if you try to run mkfifowrite.sh multiple times in parallel.
    – chepner
    Nov 10 at 15:59












up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am writing a script that will setup an environment of machines. I have the ability to put a startup script on the machines and so I am trying to use a named pipe mkfifo in unix on my "workstation" machine that will listen for writes from these new machines when they come online.



The problem is, I have no control over when these machines may come online. In total there are over 20 machines that are being started simultaneously and I have tried to simulate the effects of a named pipe being written to multiple times before it has a chance to read and have had startling results....



I wrote two small test scripts:



mkfifogen.sh



#!/bin/bash
mkfifo h
testing=""
sleep 10
for((i=0;i<5;i++));do
echo $I
while read line;do
testing+="$line"
done < h
done

echo "$testing"
rm -f h


and



mkfifowrite.sh



#!/bin/bash
for((i=0;i<5;i++));do
echo "this is a test $i" > h
done


When I run the mkfifogen.sh followed by the mkfifowrite.sh the output is as follows



0
1
2


Then the mkfifowrite.sh script exits and the mkfifogen.sh script hangs



I then have to run the mkfifowrite.sh script 3 more times, and each time it will cause the output on the mkfifogen.sh script to increment one more time. The last run will cause the value of testing to be output 4 times, so my output after 4 runs of the mkfifowrite.sh script and once of the mkfifogen.sh script looks like this:



0
1
2
3
4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4


What I am expecting to see after running mkfifogen.sh and mkfifowrite.sh once each is simply this:



0
1
2
3
4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4


I have looked around online quite a bit and there are some cryptic answers to this, but I can't seem to make much sense out of them. I feel like this link might hold my answer, but I'm not sure https://unix.stackexchange.com/questions/68146/what-are-guarantees-for-concurrent-writes-into-a-named-pipe



TL;DR:



How do I ensure that all writes to a named pipe, regardless of quick in succession they are executed, are handled independently by the read?










share|improve this question













I am writing a script that will setup an environment of machines. I have the ability to put a startup script on the machines and so I am trying to use a named pipe mkfifo in unix on my "workstation" machine that will listen for writes from these new machines when they come online.



The problem is, I have no control over when these machines may come online. In total there are over 20 machines that are being started simultaneously and I have tried to simulate the effects of a named pipe being written to multiple times before it has a chance to read and have had startling results....



I wrote two small test scripts:



mkfifogen.sh



#!/bin/bash
mkfifo h
testing=""
sleep 10
for((i=0;i<5;i++));do
echo $I
while read line;do
testing+="$line"
done < h
done

echo "$testing"
rm -f h


and



mkfifowrite.sh



#!/bin/bash
for((i=0;i<5;i++));do
echo "this is a test $i" > h
done


When I run the mkfifogen.sh followed by the mkfifowrite.sh the output is as follows



0
1
2


Then the mkfifowrite.sh script exits and the mkfifogen.sh script hangs



I then have to run the mkfifowrite.sh script 3 more times, and each time it will cause the output on the mkfifogen.sh script to increment one more time. The last run will cause the value of testing to be output 4 times, so my output after 4 runs of the mkfifowrite.sh script and once of the mkfifogen.sh script looks like this:



0
1
2
3
4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4


What I am expecting to see after running mkfifogen.sh and mkfifowrite.sh once each is simply this:



0
1
2
3
4
this is a test 0this is a test 1this is a test 2this is a test 3this is a test 4


I have looked around online quite a bit and there are some cryptic answers to this, but I can't seem to make much sense out of them. I feel like this link might hold my answer, but I'm not sure https://unix.stackexchange.com/questions/68146/what-are-guarantees-for-concurrent-writes-into-a-named-pipe



TL;DR:



How do I ensure that all writes to a named pipe, regardless of quick in succession they are executed, are handled independently by the read?







linux bash unix pipe named-pipes






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 10 at 14:08









CraigR8806

1,443717




1,443717











  • Down voter, do you have a reason? If so, please comment on how I can improve my question...
    – CraigR8806
    Nov 10 at 14:53










  • This is a little tricky. First, are you intentionally opening and closing the pipe in mkfifowrite.sh at each iteration, or do you want a single run of mkfifowrite.sh to correspond to a single iteration of the for loop in mkfifogen.sh? Second, I'm getting different results depending on which version of bash I used, and possibly whether I run this under macOS or Linux. Which version of bash are you using?
    – chepner
    Nov 10 at 15:54










  • Yes, each iteration of the for loop would emulate a different write to the pipe, like a machine coming online and relaying its status. I am running this on RHEL. @chepner
    – CraigR8806
    Nov 10 at 15:56











  • Essentially, I want to understand what happens when writes stack up on the pipe before the read has an attempt to read the first one.
    – CraigR8806
    Nov 10 at 15:59










  • Note that you aren't testing concurrent writes; you have a single reader and a single writer, and that writer is just making a series of sequential writes. The real problems will happen if you try to run mkfifowrite.sh multiple times in parallel.
    – chepner
    Nov 10 at 15:59
















  • Down voter, do you have a reason? If so, please comment on how I can improve my question...
    – CraigR8806
    Nov 10 at 14:53










  • This is a little tricky. First, are you intentionally opening and closing the pipe in mkfifowrite.sh at each iteration, or do you want a single run of mkfifowrite.sh to correspond to a single iteration of the for loop in mkfifogen.sh? Second, I'm getting different results depending on which version of bash I used, and possibly whether I run this under macOS or Linux. Which version of bash are you using?
    – chepner
    Nov 10 at 15:54










  • Yes, each iteration of the for loop would emulate a different write to the pipe, like a machine coming online and relaying its status. I am running this on RHEL. @chepner
    – CraigR8806
    Nov 10 at 15:56











  • Essentially, I want to understand what happens when writes stack up on the pipe before the read has an attempt to read the first one.
    – CraigR8806
    Nov 10 at 15:59










  • Note that you aren't testing concurrent writes; you have a single reader and a single writer, and that writer is just making a series of sequential writes. The real problems will happen if you try to run mkfifowrite.sh multiple times in parallel.
    – chepner
    Nov 10 at 15:59















Down voter, do you have a reason? If so, please comment on how I can improve my question...
– CraigR8806
Nov 10 at 14:53




Down voter, do you have a reason? If so, please comment on how I can improve my question...
– CraigR8806
Nov 10 at 14:53












This is a little tricky. First, are you intentionally opening and closing the pipe in mkfifowrite.sh at each iteration, or do you want a single run of mkfifowrite.sh to correspond to a single iteration of the for loop in mkfifogen.sh? Second, I'm getting different results depending on which version of bash I used, and possibly whether I run this under macOS or Linux. Which version of bash are you using?
– chepner
Nov 10 at 15:54




This is a little tricky. First, are you intentionally opening and closing the pipe in mkfifowrite.sh at each iteration, or do you want a single run of mkfifowrite.sh to correspond to a single iteration of the for loop in mkfifogen.sh? Second, I'm getting different results depending on which version of bash I used, and possibly whether I run this under macOS or Linux. Which version of bash are you using?
– chepner
Nov 10 at 15:54












Yes, each iteration of the for loop would emulate a different write to the pipe, like a machine coming online and relaying its status. I am running this on RHEL. @chepner
– CraigR8806
Nov 10 at 15:56





Yes, each iteration of the for loop would emulate a different write to the pipe, like a machine coming online and relaying its status. I am running this on RHEL. @chepner
– CraigR8806
Nov 10 at 15:56













Essentially, I want to understand what happens when writes stack up on the pipe before the read has an attempt to read the first one.
– CraigR8806
Nov 10 at 15:59




Essentially, I want to understand what happens when writes stack up on the pipe before the read has an attempt to read the first one.
– CraigR8806
Nov 10 at 15:59












Note that you aren't testing concurrent writes; you have a single reader and a single writer, and that writer is just making a series of sequential writes. The real problems will happen if you try to run mkfifowrite.sh multiple times in parallel.
– chepner
Nov 10 at 15:59




Note that you aren't testing concurrent writes; you have a single reader and a single writer, and that writer is just making a series of sequential writes. The real problems will happen if you try to run mkfifowrite.sh multiple times in parallel.
– chepner
Nov 10 at 15:59












1 Answer
1






active

oldest

votes

















up vote
0
down vote













The reader reads until EOF, then repeats, until 5 EOFs have been received.



The writer opens and closes the pipe 5 times. Every time the writer closes the pipe, a potential EOF condition exists. It doesn't become an actual EOF until the reader attempts to read it (after reading everything that was written before).



During this potential EOF phase, there's a race. The writer is incrementing i and preparing to open the pipe for writing again, while the reader is completing the read command and processing the result, after which it will try to read again.



If the writer performs an open for writing before the reader attempts the read, the potential EOF condition disappears. If the reader attempts the read while the writer is no longer connected to the pipe, the EOF happens.



As you can see, when there are multiple writers to a pipe (whether sequential or parallel), EOFs are a pain. You can't expect them to reliably show up between messages from different writers. My way out of this would be to design the protocol so that the reader doesn't need EOFs to recognize the end of a message, and then have the reader open the pipe in read+write mode so there will always be at least one existing writer, and EOF will never occur.



Keeping the messages under PIPE_BUF size so they don't get split up is a separate issue, which you also have to pay attention to.






share|improve this answer




















  • The multiple writers are sequential. One doesn't begin until the previous one completes. There's no race condition there.
    – chepner
    Nov 11 at 2:06











  • @chepner I didn't say there was a race between 2 writers. I described (in great detail!) the race between the writer and the reader.
    – Wumpus Q. Wumbley
    Nov 11 at 2:09










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53239773%2fconcurrent-writes-to-mkfifo-seem-to-get-lost%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













The reader reads until EOF, then repeats, until 5 EOFs have been received.



The writer opens and closes the pipe 5 times. Every time the writer closes the pipe, a potential EOF condition exists. It doesn't become an actual EOF until the reader attempts to read it (after reading everything that was written before).



During this potential EOF phase, there's a race. The writer is incrementing i and preparing to open the pipe for writing again, while the reader is completing the read command and processing the result, after which it will try to read again.



If the writer performs an open for writing before the reader attempts the read, the potential EOF condition disappears. If the reader attempts the read while the writer is no longer connected to the pipe, the EOF happens.



As you can see, when there are multiple writers to a pipe (whether sequential or parallel), EOFs are a pain. You can't expect them to reliably show up between messages from different writers. My way out of this would be to design the protocol so that the reader doesn't need EOFs to recognize the end of a message, and then have the reader open the pipe in read+write mode so there will always be at least one existing writer, and EOF will never occur.



Keeping the messages under PIPE_BUF size so they don't get split up is a separate issue, which you also have to pay attention to.






share|improve this answer




















  • The multiple writers are sequential. One doesn't begin until the previous one completes. There's no race condition there.
    – chepner
    Nov 11 at 2:06











  • @chepner I didn't say there was a race between 2 writers. I described (in great detail!) the race between the writer and the reader.
    – Wumpus Q. Wumbley
    Nov 11 at 2:09














up vote
0
down vote













The reader reads until EOF, then repeats, until 5 EOFs have been received.



The writer opens and closes the pipe 5 times. Every time the writer closes the pipe, a potential EOF condition exists. It doesn't become an actual EOF until the reader attempts to read it (after reading everything that was written before).



During this potential EOF phase, there's a race. The writer is incrementing i and preparing to open the pipe for writing again, while the reader is completing the read command and processing the result, after which it will try to read again.



If the writer performs an open for writing before the reader attempts the read, the potential EOF condition disappears. If the reader attempts the read while the writer is no longer connected to the pipe, the EOF happens.



As you can see, when there are multiple writers to a pipe (whether sequential or parallel), EOFs are a pain. You can't expect them to reliably show up between messages from different writers. My way out of this would be to design the protocol so that the reader doesn't need EOFs to recognize the end of a message, and then have the reader open the pipe in read+write mode so there will always be at least one existing writer, and EOF will never occur.



Keeping the messages under PIPE_BUF size so they don't get split up is a separate issue, which you also have to pay attention to.






share|improve this answer




















  • The multiple writers are sequential. One doesn't begin until the previous one completes. There's no race condition there.
    – chepner
    Nov 11 at 2:06











  • @chepner I didn't say there was a race between 2 writers. I described (in great detail!) the race between the writer and the reader.
    – Wumpus Q. Wumbley
    Nov 11 at 2:09












up vote
0
down vote










up vote
0
down vote









The reader reads until EOF, then repeats, until 5 EOFs have been received.



The writer opens and closes the pipe 5 times. Every time the writer closes the pipe, a potential EOF condition exists. It doesn't become an actual EOF until the reader attempts to read it (after reading everything that was written before).



During this potential EOF phase, there's a race. The writer is incrementing i and preparing to open the pipe for writing again, while the reader is completing the read command and processing the result, after which it will try to read again.



If the writer performs an open for writing before the reader attempts the read, the potential EOF condition disappears. If the reader attempts the read while the writer is no longer connected to the pipe, the EOF happens.



As you can see, when there are multiple writers to a pipe (whether sequential or parallel), EOFs are a pain. You can't expect them to reliably show up between messages from different writers. My way out of this would be to design the protocol so that the reader doesn't need EOFs to recognize the end of a message, and then have the reader open the pipe in read+write mode so there will always be at least one existing writer, and EOF will never occur.



Keeping the messages under PIPE_BUF size so they don't get split up is a separate issue, which you also have to pay attention to.






share|improve this answer












The reader reads until EOF, then repeats, until 5 EOFs have been received.



The writer opens and closes the pipe 5 times. Every time the writer closes the pipe, a potential EOF condition exists. It doesn't become an actual EOF until the reader attempts to read it (after reading everything that was written before).



During this potential EOF phase, there's a race. The writer is incrementing i and preparing to open the pipe for writing again, while the reader is completing the read command and processing the result, after which it will try to read again.



If the writer performs an open for writing before the reader attempts the read, the potential EOF condition disappears. If the reader attempts the read while the writer is no longer connected to the pipe, the EOF happens.



As you can see, when there are multiple writers to a pipe (whether sequential or parallel), EOFs are a pain. You can't expect them to reliably show up between messages from different writers. My way out of this would be to design the protocol so that the reader doesn't need EOFs to recognize the end of a message, and then have the reader open the pipe in read+write mode so there will always be at least one existing writer, and EOF will never occur.



Keeping the messages under PIPE_BUF size so they don't get split up is a separate issue, which you also have to pay attention to.







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 10 at 18:14









Wumpus Q. Wumbley

16.9k12047




16.9k12047











  • The multiple writers are sequential. One doesn't begin until the previous one completes. There's no race condition there.
    – chepner
    Nov 11 at 2:06











  • @chepner I didn't say there was a race between 2 writers. I described (in great detail!) the race between the writer and the reader.
    – Wumpus Q. Wumbley
    Nov 11 at 2:09
















  • The multiple writers are sequential. One doesn't begin until the previous one completes. There's no race condition there.
    – chepner
    Nov 11 at 2:06











  • @chepner I didn't say there was a race between 2 writers. I described (in great detail!) the race between the writer and the reader.
    – Wumpus Q. Wumbley
    Nov 11 at 2:09















The multiple writers are sequential. One doesn't begin until the previous one completes. There's no race condition there.
– chepner
Nov 11 at 2:06





The multiple writers are sequential. One doesn't begin until the previous one completes. There's no race condition there.
– chepner
Nov 11 at 2:06













@chepner I didn't say there was a race between 2 writers. I described (in great detail!) the race between the writer and the reader.
– Wumpus Q. Wumbley
Nov 11 at 2:09




@chepner I didn't say there was a race between 2 writers. I described (in great detail!) the race between the writer and the reader.
– Wumpus Q. Wumbley
Nov 11 at 2:09

















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53239773%2fconcurrent-writes-to-mkfifo-seem-to-get-lost%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Darth Vader #20

Ondo