FREEBUF(3PVM) FREEBUF(3PVM)
NAME
pvm_freebuf - Disposes of a message buffer.
SYNOPSIS
C int info = pvm_freebuf( int bufid )
Fortran call pvmffreebuf( bufid, info )
PARAMETERS
bufid Integer message buffer identifier.
info Integer status code returned by the routine. Values less than zero
indicate an error.
DISCUSSION
The routine pvm_freebuf frees the memory associated with the message buffer
identified by bufid. Message buffers are created by pvm_mkbuf,
pvm_initsend, and pvm_recv. If pvm_freebuf is successful, info will be 0.
If some error occurs then info will be < 0.
pvm_freebuf can be called for a send buffer created by pvm_mkbuf after the
message has been sent and is no longer needed.
Receive buffers typically do not have to be freed unless they have been
saved in the course of using multiple buffers. But pvm_freebuf can be used
to destroy receive buffers as well. So messages that arrive but are no
longer needed can be destroyed so they will not consume buffer space.
Typically multiple send and receive buffers are not needed and the user can
simply use the pvm_initsend routine to reset the default send buffer.
There are several cases where multiple buffers are useful. One example
where multiple message buffers are needed involves libraries or graphical
interfaces that use PVM and interact with a running PVM application but do
not want to interfere with the application's own communication.
When multiple buffers are used they generally are made and freed for each
message that is packed. In fact, pvm_initsend simply does a pvm_freebuf
followed by a pvm_mkbuf for the default buffer.
EXAMPLES
C:
bufid = pvm_mkbuf( PvmDataDefault );
:
info = pvm_freebuf( bufid );
Fortran:
CALL PVMFMKBUF( PVMDEFAULT, BUFID )
:
CALL PVMFFREEBUF( BUFID, INFO )
ERRORS
These error conditions can be returned by pvm_freebuf
PvmBadParam giving an invalid argument value.
PvmNoSuchBuf giving an invalid bufid value.
SEE ALSO
pvm_mkbuf(3PVM), pvm_initsend(3PVM), pvm_recv(3PVM)
Back to the alphabetical listing
Back to the listing of routines
for sending and receiving messages