|  | @@ -169,9 +169,13 @@ class ServerCallbackReaderWriter {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // The following classes are the reactor interfaces that are to be implemented
 | 
	
		
			
				|  |  |  // by the user, returned as the result of the method handler for a callback
 | 
	
		
			
				|  |  | -// method, and activated by the call to OnStarted. Note that none of the classes
 | 
	
		
			
				|  |  | -// are pure; all reactions have a default empty reaction so that the user class
 | 
	
		
			
				|  |  | -// only needs to override those classes that it cares about.
 | 
	
		
			
				|  |  | +// method, and activated by the call to OnStarted. The library guarantees that
 | 
	
		
			
				|  |  | +// OnStarted will be called for any reactor that has been created using a
 | 
	
		
			
				|  |  | +// method handler registered on a service. No operation initiation method may be
 | 
	
		
			
				|  |  | +// called until after the call to OnStarted.
 | 
	
		
			
				|  |  | +// Note that none of the classes are pure; all reactions have a default empty
 | 
	
		
			
				|  |  | +// reaction so that the user class only needs to override those classes that it
 | 
	
		
			
				|  |  | +// cares about.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /// \a ServerBidiReactor is the interface for a bidirectional streaming RPC.
 | 
	
		
			
				|  |  |  template <class Request, class Response>
 | 
	
	
		
			
				|  | @@ -179,6 +183,9 @@ class ServerBidiReactor : public internal::ServerReactor {
 | 
	
		
			
				|  |  |   public:
 | 
	
		
			
				|  |  |    ~ServerBidiReactor() = default;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  /// Do NOT call any operation initiation method (names that start with Start)
 | 
	
		
			
				|  |  | +  /// until after the library has called OnStarted on this object.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    /// Send any initial metadata stored in the RPC context. If not invoked,
 | 
	
		
			
				|  |  |    /// any initial metadata will be passed along with the first Write or the
 | 
	
		
			
				|  |  |    /// Finish (if there are no writes).
 | 
	
	
		
			
				|  | @@ -245,7 +252,8 @@ class ServerBidiReactor : public internal::ServerReactor {
 | 
	
		
			
				|  |  |    /// \param[in] s The status outcome of this RPC
 | 
	
		
			
				|  |  |    void Finish(Status s) { stream_->Finish(std::move(s)); }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  /// Notify the application that a streaming RPC has started
 | 
	
		
			
				|  |  | +  /// Notify the application that a streaming RPC has started and that it is now
 | 
	
		
			
				|  |  | +  /// ok to call any operation initation method.
 | 
	
		
			
				|  |  |    ///
 | 
	
		
			
				|  |  |    /// \param[in] context The context object now associated with this RPC
 | 
	
		
			
				|  |  |    virtual void OnStarted(ServerContext* context) {}
 |