Browse Source

Actually fix race condition that happens in production. I think.

pull/5/head
Gabe Kangas 5 years ago
parent
commit
f013a8639a
  1. 6
      main.go
  2. 7
      playlistMonitor.go
  3. 3
      utils.go

6
main.go

@ -22,9 +22,11 @@ var stats *Stats @@ -22,9 +22,11 @@ var stats *Stats
var usingExternalStorage = false
func main() {
// logrus.SetReportCaller(true)
log.StandardLogger().Printf("Owncast v%s/%s (%s)", BuildVersion, BuildType, GitCommit)
checkConfig(configuration)
resetDirectories(configuration)
stats = getSavedStats()
stats.Setup()
@ -42,15 +44,13 @@ func main() { @@ -42,15 +44,13 @@ func main() {
go monitorVideoContent(configuration.PrivateHLSPath, configuration, storage)
}
createInitialOfflineState()
go startRTMPService()
resetDirectories(configuration)
startWebServer()
}
func startWebServer() {
// log.SetFlags(log.Lshortfile)
// websocket server
server = NewServer("/entry")
go server.Listen()

7
playlistMonitor.go

@ -88,6 +88,9 @@ func monitorVideoContent(pathToMonitor string, configuration Config, storage Chu @@ -88,6 +88,9 @@ func monitorVideoContent(pathToMonitor string, configuration Config, storage Chu
case event := <-w.Event:
relativePath := getRelativePathFromAbsolutePath(event.Path)
if path.Ext(relativePath) == ".tmp" {
continue
}
// Ignore removals
if event.Op == watcher.Remove {
@ -130,11 +133,13 @@ func monitorVideoContent(pathToMonitor string, configuration Config, storage Chu @@ -130,11 +133,13 @@ func monitorVideoContent(pathToMonitor string, configuration Config, storage Chu
}()
// Watch the hls segment storage folder recursively for changes.
w.FilterOps(watcher.Write, watcher.Rename, watcher.Create)
if err := w.AddRecursive(pathToMonitor); err != nil {
log.Fatalln(err)
}
if err := w.Start(time.Millisecond * 100); err != nil {
if err := w.Start(time.Millisecond * 200); err != nil {
log.Fatalln(err)
}
}

3
utils.go

@ -74,6 +74,9 @@ func resetDirectories(configuration Config) { @@ -74,6 +74,9 @@ func resetDirectories(configuration Config) {
os.MkdirAll(path.Join(configuration.PublicHLSPath, strconv.Itoa(0)), 0777)
}
}
func createInitialOfflineState() {
// Provide default files
showStreamOfflineState(configuration)
if !fileExists("webroot/thumbnail.png") {

Loading…
Cancel
Save