package iowrappers

import (
	"io"
	"log"
)

func SynchronizeStreams(stream1, stream2 io.ReadWriter) {
	waitChannel := make(chan bool, 2)

	go func() {
		defer func() {
			waitChannel <- true
		}()
		_, err := io.Copy(stream1, stream2)
		if err != nil {
			log.Printf("SynchronizeStreamms: error(1) %v\n", err)
		}
	}()

	go func() {
		defer func() {
			waitChannel <- true
		}()
		_, err := io.Copy(stream2, stream1)
		if err != nil {
			log.Printf("SynchronizeStreams: error(2) %v\n", err)
		}
	}()

	<-waitChannel
	log.Println("SynchronizeStreams: Connection closed")
}