in out_writeapi.go [768:795]
func FLBPluginExitCtx(ctx unsafe.Pointer) int {
// Get context
id := output.FLBPluginGetContext(ctx).(int)
// Locate stream in map
config, ok := configMap[id]
if !ok {
log.Printf("Finding configuration for output instance with id: %d failed in FLBPluginExitCtx", id)
return output.FLB_ERROR
}
// Calls checkResponses, finalizes, and closes each stream
// If there is an error it preserves it and then continues to close and finalize all other streams
checkAllStreamResponses(ms_ctx, &config.managedStreamSlice, false, &config.mutex, config.exactlyOnce, id)
errFlag := finalizeCloseAllStreams(&config, id)
if config.client != nil {
if err := config.client.Close(); err != nil {
log.Printf("Closing managed writer client for output instance with id: %d failed in FLBPluginExitCtx: %s", id, err)
errFlag = true
}
}
if errFlag {
return output.FLB_ERROR
}
return output.FLB_OK
}