+ if( fifo != NULL ) {
+ memset( fifo, 0, sizeof( *fifo ) );
+ fifo->key = mtype;
+ fifo->fd = open_fifo( ctx, mtype, io_dir );
+ if( fifo->fd >= 0 ) { // save only on good open
+ rmr_sym_map( hash, mtype, fifo );
+ } else {
+ free( fifo );
+ fifo = NULL;
+ }