Used getpid() instead of currpid
Avoided signaling pipe reader/writer if no bytes were written/read
Implemented cleanup of pipe resources when owner is killed
Added README