GithubHelp home page GithubHelp logo

Comments (3)

gmethvin avatar gmethvin commented on May 12, 2024 1

The Scala global execution context sets threads to be daemon threads. The JVM will be shut down when all non-daemon threads have exited, so as soon as your main thread finishes, your watcher will be terminated. You either need some other non-daemon thread running doing your processing, or you need to use an execution context with non-daemon threads, for example:

implicit val ec: ExecutionContext =
  ExecutionContext.fromExecutorService(Executors.newFixedThreadPool(8))

Hard to suggest specifics about thread pools without knowing the kind of work you're doing, but the bottom line is you need some regular non-daemon threads running so the JVM doesn't exit.

from directory-watcher.

gmethvin avatar gmethvin commented on May 12, 2024

start() works exactly like it does in the better-files File.Monitor it extends. It doesn't block. It runs the watch thread on the global execution context you've provided implicitly. The issue you're seeing is that your program is finishing immediately after the watcher starts running in the background.

from directory-watcher.

simon-gunacker avatar simon-gunacker commented on May 12, 2024

Yes. Non-blocking is a good thing for a file monitor ;-). But how can I run my program then? Let's just assume that it should not do anything else than printing the events ...

from directory-watcher.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.