GRPC Core  0.11.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions
writing.c File Reference
#include "src/core/transport/chttp2/internal.h"
#include "src/core/transport/chttp2/http2_errors.h"
#include <grpc/support/log.h>

Functions

int grpc_chttp2_unlocking_check_writes (grpc_chttp2_transport_global *transport_global, grpc_chttp2_transport_writing *transport_writing)
 Transport writing call flow: chttp2_transport.c calls grpc_chttp2_unlocking_check_writes to see if writes are required; if they are, chttp2_transport.c calls grpc_chttp2_perform_writes to do the writes. More...
 
void grpc_chttp2_perform_writes (grpc_chttp2_transport_writing *transport_writing, grpc_endpoint *endpoint)
 
void grpc_chttp2_cleanup_writing (grpc_chttp2_transport_global *transport_global, grpc_chttp2_transport_writing *transport_writing)
 

Function Documentation

void grpc_chttp2_cleanup_writing ( grpc_chttp2_transport_global transport_global,
grpc_chttp2_transport_writing transport_writing 
)
void grpc_chttp2_perform_writes ( grpc_chttp2_transport_writing transport_writing,
grpc_endpoint endpoint 
)
int grpc_chttp2_unlocking_check_writes ( grpc_chttp2_transport_global global,
grpc_chttp2_transport_writing writing 
)

Transport writing call flow: chttp2_transport.c calls grpc_chttp2_unlocking_check_writes to see if writes are required; if they are, chttp2_transport.c calls grpc_chttp2_perform_writes to do the writes.

Once writes have been completed (meaning another write could potentially be started), grpc_chttp2_terminate_writing is called. This will call grpc_chttp2_cleanup_writing, at which point the write phase is complete. Someone is unlocking the transport mutex: check to see if writes are required, and schedule them if so