package webtransport

import (
	

	
)

type closeFunc func()

// The streamsMap manages the streams of a single QUIC connection.
// Note that several WebTransport sessions can share one QUIC connection.
type streamsMap struct {
	mx sync.Mutex
	m  map[quic.StreamID]closeFunc
}

func newStreamsMap() *streamsMap {
	return &streamsMap{m: make(map[quic.StreamID]closeFunc)}
}

func ( *streamsMap) ( quic.StreamID,  closeFunc) {
	.mx.Lock()
	.m[] = 
	.mx.Unlock()
}

func ( *streamsMap) ( quic.StreamID) {
	.mx.Lock()
	delete(.m, )
	.mx.Unlock()
}

func ( *streamsMap) () {
	.mx.Lock()
	defer .mx.Unlock()

	for ,  := range .m {
		()
	}
	.m = nil
}