Index: ossp-pkg/sio/sio.pod RCS File: /v/ossp/cvs/ossp-pkg/sio/sio.pod,v rcsdiff -q -kk '-r1.5' '-r1.6' -u '/v/ossp/cvs/ossp-pkg/sio/sio.pod,v' 2>/dev/null --- sio.pod 2002/11/14 15:57:53 1.5 +++ sio.pod 2002/11/24 19:47:08 1.6 @@ -88,7 +88,8 @@ sios->openw, sios->closew, sios->input, -sios->output. +sios->output, +sios->shutdown. =back @@ -298,6 +299,7 @@ sio_rc_t (*closew) (sio_t *, al_t *, void *); sio_rc_t (*input) (sio_t *, al_t *, void *); sio_rc_t (*output) (sio_t *, al_t *, void *); + sio_rc_t (*shutdown) (sio_t *, void *); } sio_module_t; Applications reference this variable to create stage intances with @@ -366,6 +368,16 @@ Any other code will abort the scheduler and leave the stream in an inconsistent state. +=item sio_rc_t Bshutdown>(sio_t *I, void *I); + +Prepare for a close operation. If this function returns SIO_OK +then the scheduler will go one more round through the writer +and the reader so that final handshakes can be delivered to +upstream modules. + +NOTE: The shutdown operation is optional, modules may specify +a NULL pointer here. + =back =head1 THEORY