quorum/vendor/github.com/howeyc/fsnotify
Sai V c215989c10
Quorum geth upgrade to 1.9.7 (#960)
Co-authored-by: amalraj.manigmail.com <amalraj.manigmail.com>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
Co-authored-by: Flash Sheridan <flash@pobox.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Nguyen Kien Trung <trung.n.k@gmail.com>
Co-authored-by: Felix Lange <fjl@twurst.com>
Co-authored-by: Rob Mulholand <rmulholand@8thlight.com>
Co-authored-by: Felföldi Zsolt <zsfelfoldi@gmail.com>
Co-authored-by: soc1c <soc1c@users.noreply.github.com>
Co-authored-by: Rafael Matias <rafael@skyle.net>
Co-authored-by: gary rong <garyrong0905@gmail.com>
Co-authored-by: Lucas Hendren <lhendre2@gmail.com>
Co-authored-by: Ryan Schneider <ryanleeschneider@gmail.com>
Co-authored-by: ywzqwwt <39263032+ywzqwwt@users.noreply.github.com>
Co-authored-by: zcheng9 <zcheng9@hawk.iit.edu>
Co-authored-by: zzy96 <zhou0250@e.ntu.edu.sg>
Co-authored-by: kikilass <36239971+kikilass@users.noreply.github.com>
Co-authored-by: Darrel Herbst <dherbst@gmail.com>
Co-authored-by: Ross <9055337+Chadsr@users.noreply.github.com>
Co-authored-by: Jeffery Robert Walsh <rlxrlps@gmail.com>
Co-authored-by: Marius Kjærstad <sandakersmann@users.noreply.github.com>
Co-authored-by: Piotr Dyraga <piotr.dyraga@keep.network>
Co-authored-by: Guillaume Ballet <gballet@gmail.com>
Co-authored-by: Michael Forney <mforney@mforney.org>
Co-authored-by: Samuel Marks <807580+SamuelMarks@users.noreply.github.com>
2020-04-29 10:50:56 -04:00
..
AUTHORS Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
CHANGELOG.md Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
CONTRIBUTING.md Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
LICENSE Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
README.md Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
fsnotify.go Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
fsnotify_bsd.go Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
fsnotify_linux.go Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
fsnotify_open_bsd.go Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
fsnotify_open_darwin.go Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00
fsnotify_windows.go Quorum geth upgrade to 1.9.7 (#960) 2020-04-29 10:50:56 -04:00

README.md

File system notifications for Go

GoDoc

Cross platform: Windows, Linux, BSD and OS X.

Moving Notice

There is a fork being actively developed with a new API in preparation for the Go Standard Library: github.com/go-fsnotify/fsnotify

Example:

package main

import (
	"log"

	"github.com/howeyc/fsnotify"
)

func main() {
	watcher, err := fsnotify.NewWatcher()
	if err != nil {
		log.Fatal(err)
	}

	done := make(chan bool)

	// Process events
	go func() {
		for {
			select {
			case ev := <-watcher.Event:
				log.Println("event:", ev)
			case err := <-watcher.Error:
				log.Println("error:", err)
			}
		}
	}()

	err = watcher.Watch("testDir")
	if err != nil {
		log.Fatal(err)
	}
	
	// Hang so program doesn't exit
	<-done

	/* ... do stuff ... */
	watcher.Close()
}

For each event:

  • Name
  • IsCreate()
  • IsDelete()
  • IsModify()
  • IsRename()

FAQ

When a file is moved to another directory is it still being watched?

No (it shouldn't be, unless you are watching where it was moved to).

When I watch a directory, are all subdirectories watched as well?

No, you must add watches for any directory you want to watch (a recursive watcher is in the works #56).

Do I have to watch the Error and Event channels in a separate goroutine?

As of now, yes. Looking into making this single-thread friendly (see #7)

Why am I receiving multiple events for the same file on OS X?

Spotlight indexing on OS X can result in multiple events (see #62). A temporary workaround is to add your folder(s) to the Spotlight Privacy settings until we have a native FSEvents implementation (see #54).

How many files can be watched at once?

There are OS-specific limits as to how many watches can be created:

  • Linux: /proc/sys/fs/inotify/max_user_watches contains the limit, reaching this limit results in a "no space left on device" error.
  • BSD / OSX: sysctl variables "kern.maxfiles" and "kern.maxfilesperproc", reaching these limits results in a "too many open files" error.