Я хочу закрыть сеанс mgo после того, как он полностью передается клиенту. Сначала я думал, что это может сработать, но кажется, что defer
просто ждет, пока функция func не вернется или что-то еще.Как отложить сессию mgo до тех пор, пока она не будет полностью передана клиенту?
func (c App) OpenFile(fileId string) revel.Result {
// convert string to bson.ObjectId
objId := bson.ObjectIdHex(fileId)
file, session := OpenFile(objId)
defer session.Close()
// memfile io.Reader, filename string, delivery ContentDisposition, modtime time.Time
var now = time.Now()
return c.RenderBinary(file, "filename", "inline", now)
}