Parent Child SIGPIPE and write problem
Murray Taylor
MTaylor at bytecraft.com.au
Fri Apr 30 08:24:14 UTC 2010
I am writing a process that has a parent running as a daemon process
that has to spawn an appropriate child to parse whatever the parent has
in one of several formats (hence the variety of child parsers)
I am getting occasional SIGPIPE errors (and the boring bit is that I
have put in code that I think _should_prevent the SIGPIPE occurring
any comments or guidance welcome ...
parent pseudo code
main()
{
daemon
while(1)
{
get test data
pipe()
fork()
in Parent
read(child->parent pipe) until \n
log string to logfile
write(parent->child pipe) real data to child for
processing
close(parent->child pipe)
read(child->parent pipe) until EOF for result
waitpid(child)
get return code
in Child
set stdin nonblocking so child will inherit
execve the correct parser
}
}
child pseudo code
main()
{
read cmdline params
write(child->parent pipe) my PID
read(parent->child pipe) intil EOF
process through flex/bison parser
write(child->parent pipe) the result
return (code)
}
I am catching SIPPIPE in the parent and logging it, and have a
test on the parent write for EPIPE and am doing a go-around twice loop
through
the write before giving up.
Murray Taylor
Bytecraft Systems
Special Projects Engineer
P: +61 3 8710 0600
D: +61 3 9238 4275
F: +61 3 9238 4140
--
|_|0|_| "Absence of evidence
|_|_|0| is not evidence of absence"
|0|0|0| Carl Sagan
---------------------------------------------------------------
The information transmitted in this e-mail is for the exclusive
use of the intended addressee and may contain confidential
and/or privileged material. Any review, re-transmission,
dissemination or other use of it, or the taking of any action
in reliance upon this information by persons and/or entities
other than the intended recipient is prohibited. If you
received this in error, please inform the sender and/or
addressee immediately and delete the material.
E-mails may not be secure, may contain computer viruses and
may be corrupted in transmission. Please carefully check this
e-mail (and any attachment) accordingly. No warranties are
given and no liability is accepted for any loss or damage
caused by such matters.
---------------------------------------------------------------
### This e-mail message has been scanned for Viruses by Bytecraft ###
More information about the freebsd-questions
mailing list