NAME
CLOG_cput - move a log record from one of the input buffers to the
output
SYNOPSIS
void CLOG_cput( ptr )
double **ptr;
This function moves records from one of the three buffers being merged
into the output buffer. When the output buffer is filled, it is sent
to the parent. A separate output routine handles output on the root.
If the input buffer is emptied (endblock record is read) and
corresponds to a child, a new buffer is received from the child. When
an endlog record is read on the input buffer, the number of sources is
decremented and the time is set to positive infinity so that the empty
input source will never have the lowest time.
At entry we assume that *p is pointing to a log record that is not an
end-of-block record, and that outbuf is pointing to a buffer that has
room in it for the record. We ensure that these conditions are met on
exit as well, by sending (or writing, if we are the root) and receiving
blocks as necessary.
Input parameters
pointer to the record to be moved into the output buffer
-
LOCATION
clog_merge.c
11/5/2003 CLOG_cput(4)