func FLBPluginExitCtx()

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
}